字符串查找方法找不到第一字母
string find method does not find first letter
我正在实现一个非常简单的C 代码,以查找方法。第二个字符串中的字母应存在于第一个字符串中:
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
void solution(string str1, string str2){
int size1 = str1.size();
int size2 = str2.size();
if(size1 != size2){
cout<<"not equal";
return;
}
for (int i = 0; i <size2; i++){
if (str1.find(str2[i],0)){
cout<<"found "<<str2[i]<<endl;
}
}
}
int main(){
solution("abcd", "dacb");
return 0;
}
我总是得到一个输出,例如
found d
found c
found b
find()永远不匹配第一个字符串的第一个字母(实现了查找方法的字符串)。
任何人都可以指出原因吗?我尝试查找许多来源。我是否错过了Find()?
std::string::find()
返回找到的字符(或字符串)的索引。'a'
位于索引0,评估为false。因此行为。您需要更改if
语句以检查返回的索引是否等于std::string::npos
。这样的东西:
if(str.find(str2[i]) != string::npos)
注意:您不需要包含stdio.h
,因为您不使用printf
s。
相关文章:
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 一种有效的数据结构,用于按 ID 访问和查找加权随机项
- 如何从一组变量中查找最低值
- 如何通过查找迭代器结果分配给一组对的元素
- 如何在 LAN 上查找带有套接字 (UDP) 的服务器 C++.
- CreateProcess在退出后占用套接字端口(每个套接字地址只允许使用一次)
- C++ 查找算法:如何找到元素的最后一次出现?
- 仅通过建立一次TCP连接将Recv从客户端发送到服务器套接字
- 如何在 c++98 中通过特定字段在 QList 中查找对象?
- 需要帮助从12个字节生成新的24字节RGB查找阵列,或者是一种更好的编码方法
- 想要查找二进制码字中出现的 1 或 0 的位置
- 在二维向量的每一列中查找最大值
- 我如何一遍又一遍地向用户提问,直到他们输入正确的值字段?
- 如何使用 Clang 查找所有成员字段读/写?
- 将指向结构的指针转换为具有较少字段数的另一种结构类型
- 如何查找一组类型对是否包含一个元素作为第二个成员
- 在 C 中创建一种查找表
- 如何使用BSD套接字查找ip地址