如何判断一个char * 的字符串为空?

B2China B2China 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用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);
}

怎么才是正确有效的判断方法呢?
...全文

相关推荐

判断字符变量为空(包括空格)

c语言如何判断字符变量未输入 包括判断空格的输入

山水如画

C++不使用变量求字符串长度strlen函数的实现方法

主要介绍了C++不使用变量求字符串长度strlen函数的实现方法,实例分析了strlen函数的实现原理与不使用变量求字符串长度的实现技巧,需要的朋友可以参考下

weixin_38528463

数据结构回文判断.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++的面试题目,希望进华为的朋友不可不看。

weiguo_star

C/C++常考面试题-牛客网

C/C++常考面试题

雄鹰展翅2017
评论 7
收藏 已收藏
分享
返回顶部
B2China
C++ 语言 65,214 成员 250,514 内容