gpt4 book ai didi

c++ - 检查字符串对象是否只有空字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:17:30 26 4
gpt4 key购买 nike

我想检查 20 个字符的字符串对象中是否只有空字符(零值)。我的尝试:

string subString;
subString = fileBuffer.substr(origin, origin+20);

if(strCompare.compare("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0") == 0)
cout<<"string is empty"<<endl;
else
cout<<"string is not empty"<<endl;

我确定 subString 被分配了 20 个 null 字符,但是,程序只输出“string is not empty”。我也尝试了其他方法,例如将比较参数设置为“”或 NULL 无济于事。有人可以向我指出任何明显的错误或正确的方法吗?我真的很感激。

最佳答案

这个问题:

 if(strCompare.compare("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")

是由C风格的字符串构造出来的字符串会是空的。您需要显式构造一个字符串,提供大小。一种方式:

 if( strCompare.compare(
std::string( "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20 ) == 0 )

或更短一些:

 if( strCompare.compare(
std::string( 20, 0 ) == 0 )

关于c++ - 检查字符串对象是否只有空字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2165315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com