如何逐个检查const char *值

时间:2012-07-21 04:08:28

标签: c++ char

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

当我将这个变量多次写入文件时,它什么也没写。所以它必须是空的或用空格填充。奇怪的是,在我写的txt文件中,每当有值或不有时,它会改变行。为什么?这是否意味着从函数返回的值有一个\ n?

如何检查const char *的值是否为空或一般如何逐字符检查char *中的值?

1 个答案:

答案 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有助于检查指针是否指向空字符串。