判断char* 是否为NULL
1 | char* foo; |
比较典型的一个应用是获取环境变量时,如果没有设置环境变量,直接使用变量会报错,所以要判断是否为空:1
2
3char* path = getenv("CONFIG");
if(path)
cout<< string(path)<<endl;
使用getenv,不需要delete path
释放内存
与字符串比较
C++11 does not allow conversion from string literal to char* 所以最好不要把字符串直接赋值给 char*
1 | const char* path = "abcdef"; // 常用 |
const char*
与字符串比较,可以用函数strcmp
,若相等则返回01
2if( 0==strcmp(path, "abcdef") )
cout<<"yes"<<endl;
或者先转换成string,再进行比较:1
2if(string(path) == ss)
cout<<"yes"<<endl;