gpt4 book ai didi

C++:string.find 仅在字符串位于 pos1 上时才在字符串中查找字符

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:11 25 4
gpt4 key购买 nike

我想通过以下方式在字符串(单词)中找到一个字符(expected_char)

if (word.find(expected_char)==true)
{
cout << "You got one! It's on pos" << word.find(expected_char);
}
else
{
...
}

如果我的字符串是例如“abcd”,我搜索“c”,否则将被执行;如果我搜索“b”,if 语句将被执行。

最佳答案

std::string::find() 的返回类型是无符号类型 std::string::size_type,它返回 std::string::npos(这是 std::string::size_type 可以表示)如果没有找到字符,或者找到的字符在字符串中的第一个索引。

现在您正在将 std::string::find() 的结果与 true 进行比较,这导致 bool 值 true 的整数提升 到整数值 1。因此,当且仅当字符 expected_char 位于位置 1 时(即当它是字符串中的第二个字符时),您的条件才得到满足。

如果要检查字符expected_char是否在字符串word中,使用

if (word.find(expected_char) != std::string::npos)
{
...
}

关于C++:string.find 仅在字符串位于 pos1 上时才在字符串中查找字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14942502/

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