1

我有一个const char*变量,它从我编写的函数中获取值。

当我多次将此变量写入文件时,它什么也不写。所以一定是空的或者是用空格填充的。奇怪的是,我写的txt文件中,每次都换行,有没有值。为什么会这样?是不是表示函数返回的值有一个\n?

如何检查 a 的值是否const char *为空,或者通常如何检查 char* 中的值?

4

1 回答 1

2

由于 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检查指针是否指向空字符串可能会有所帮助。

于 2012-07-21T04:13:46.803 回答