Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何逐个检查const char*值_C++_Char - Fatal编程技术网

C++ 如何逐个检查const char*值

C++ 如何逐个检查const char*值,c++,char,C++,Char,我有一个constchar*变量,它从我编写的函数中获取值 当我多次将此变量写入文件时,它不会写入任何内容。所以它必须是空的或用空格填充。奇怪的是,在我写的txt文件中,每当它有值或没有值时,它都会更改行。这是为什么?这是否意味着函数返回的值有一个\n 如何检查常量char*的值是否为空,或者通常如何逐个字符检查char*中的值?因为C/C++指针可以解释为指针指向的值数组,检查char*值的两种方法是应用索引运算符或使用指针算术。您可以这样做: const char *p = myFuncti

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

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


如何检查常量char*的值是否为空,或者通常如何逐个字符检查char*中的值?

因为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++库。您可能会发现

strlen
有助于检查指针是否指向空字符串。

您如何使用它?不管怎样,使用
std::string
确实会更好。除非您向我们展示代码,否则无法确定问题出在哪里。无论如何,我的建议是使用std::string。该函数来自一个返回const char*的库,然后我将返回的变量写入我的txt。我看到空白和换行。如何将其转换为std::string?那么std strcmp函数会帮我思考吗?@ararar,由于隐式转换构造函数:
std::string str=yourFunction(),您只需将结果赋给一个就可以转换它。然后,您可以使用
if(str.empty())
if(str==“”)
来表示空,并比使用
const char*
更容易地执行各种其他操作。