我有一个const char*
变量,它从我编写的函数中获取值。
当我多次将此变量写入文件时,它什么也不写。所以一定是空的或者是用空格填充的。奇怪的是,我写的txt文件中,每次都换行,有没有值。为什么会这样?是不是表示函数返回的值有一个\n?
如何检查 a 的值是否const char *
为空,或者通常如何检查 char* 中的值?
由于 C/C++ 指针可以解释为指针指向的值数组,因此检查 a 值的两种方法char*
是应用索引运算符或使用指针算术。你可以这样做:
const char *p = myFunctionReturningConstChar();
for (int i = 0 ; p[i] ; i++) {
if (p[i] == '\n') printf("New line\n");
}
或这个:
const char *p = myFunctionReturningConstChar();
while (*p) {
if (*p == '\n') printf("New line\n");
p++;
}
此外,C++ 库提供了多种处理 C 字符串的函数。strlen
检查指针是否指向空字符串可能会有所帮助。