如何判断一个char * 的字符串为空?
我用VC写了一个函数,问题在注释里面:
void CFastSmtp::SetPassword(const char Password[])
{
assert(Password);
int s=strlen(Password);
/***************************************************************************/
/* m_pcPassword 是CFastSmtp类的一个私有成员:private char * m_pcPassword; */
/* 这里用if(m_pcPassword) 不能判断m_pcPassword是否为空,因为我单步调试时 */
/* 发现尽管m_pcPassword为空,但是后面的delete语句仍然执行了,用strlen判断 */
/* 也不行,用if(m_pcPassword!=0) &&if(m_pcPassword!=NULL)也不行,怎么判断? */
/***************************************************************************/
if (m_pcPassword)
delete [] m_pcPassword;
m_pcPassword = new char[s+1];
strcpy(m_pcPassword, Password);
}
怎么才是正确有效的判断方法呢?
void CFastSmtp::SetPassword(const char Password[])
{
assert(Password);
int s=strlen(Password);
/***************************************************************************/
/* m_pcPassword 是CFastSmtp类的一个私有成员:private char * m_pcPassword; */
/* 这里用if(m_pcPassword) 不能判断m_pcPassword是否为空,因为我单步调试时 */
/* 发现尽管m_pcPassword为空,但是后面的delete语句仍然执行了,用strlen判断 */
/* 也不行,用if(m_pcPassword!=0) &&if(m_pcPassword!=NULL)也不行,怎么判断? */
/***************************************************************************/
if (m_pcPassword)
delete [] m_pcPassword;
m_pcPassword = new char[s+1];
strcpy(m_pcPassword, Password);
}
怎么才是正确有效的判断方法呢?
...全文
相关推荐
判断字符变量为空(包括空格)
c语言如何判断字符变量未输入 包括判断空格的输入
C++不使用变量求字符串长度strlen函数的实现方法
主要介绍了C++不使用变量求字符串长度strlen函数的实现方法,实例分析了strlen函数的实现原理与不使用变量求字符串长度的实现技巧,需要的朋友可以参考下
数据结构回文判断.doc
数据结构回文判断 实验类型:验证型 【问题描述】 试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如'序列1 & 序列2'模式的字符序列。其中序列1和序列2中都不含字符'&',且序列2是序列1的逆 序列。例如,'a+b&b+a'是属该模式的字符序列,而'1+3 &3 -1'则不是。 思路: 首先建立一个字符数组,长度为100,然后向数组中写入索要判断的字符串。定义两个指 针,一个指向队头,一个指向队尾,队头的指针不断递增,队尾的指针不断递减,在P1 <P2的前提下,两个地址上的数据进行比较,如相等则两地址分别向中间靠拢,如对比的 结果不同则跳出,但此时P1指针小于P2指针,所以判断字符串不是回文;如两者一直相 等直到他们的地址P1=P2或P1>P2(字符串为奇数个)时,跳出并判断为回文;在这其中P1 指针的值与P2指针的值有不等的情况就直接判定不是回文。 代码源: // huiwen.cpp : Defines the entry point for the console application. // #include <stdio.h> #include <
华为c++经典面试题目
这是华为最近三年的一些关于c++的面试题目,希望进华为的朋友不可不看。
C/C++常考面试题-牛客网
C/C++常考面试题


