我有一个const char*
变量,它从我写过的函数中获取值。
当我将这个变量多次写入文件时,它什么也没写。所以它必须是空的或用空格填充。奇怪的是,在我写的txt文件中,每当有值或不有时,它会改变行。为什么?这是否意味着从函数返回的值有一个\ n?
如何检查const char *
的值是否为空或一般如何逐字符检查char *中的值?
答案 0 :(得分:2)
由于C / C ++指针可以解释为指针所指向的值数组,因此检查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 ++库provides multiple functions for working with C strings。您可能会发现strlen
有助于检查指针是否指向空字符串。