C++字符串按行输出及查找子串起始位置编程问题
C++ 字符串匹配下标查找实现
以下是补全逻辑后的完整可运行代码:
#include <iostream> #include <string> using namespace std; int main() { string workString; string string2; int pos; getline(cin, workString); cin >> string2; // 核心逻辑:调用string自带的find方法直接获取匹配起始下标 pos = workString.find(string2); cout << pos << endl; return 0; }
逻辑说明
- 读取逻辑:第一行用
getline读取完整的第一个字符串,支持带空格的内容(适配示例中Fuzzy bear带空格的输入场景),第二行用cin读取第二个待匹配字符串 - 匹配逻辑:C++
std::string自带的find()方法会自动查找参数字符串在调用对象中第一次出现的起始下标,若找不到匹配内容会返回string::npos,转为int类型后值为-1,符合常规的未匹配返回逻辑 - 示例验证:输入第一个字符串
Fuzzy bear、第二个字符串zy时,find会返回下标3,和示例输出完全一致
内容的提问来源于stack exchange,提问作者Touhou_Cirno_Fumo
相关产品推荐
相关产品推荐

