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*
更容易地执行各种其他操作。