gpt4 book ai didi

c++ - 在 C++ 中使用循环查找字符串中的子字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:16:02 24 4
gpt4 key购买 nike

代码将从用户获取两个字符串并检查字符串,是否包含子字符串作为第二个输入。

    string st1;
string subst1;
string message = " ";
cout << "Enter string and subst:";
cin >> st1;
cin >> subst1;

for (int a=0; a < st1.length(); a++) {
if (st1[a] == subst1[0]) {
for (int k = 0; k < subst1.length(); k++) {
if (st1[a + k] == subst1[k])
message = "True";
else
message = "False";
}
}
}
cout << message;

此代码不适用于“alice”和“ba”之类的输入。输出应该是false 但是当我执行代码的时候程序直接结束了

最佳答案

因为在某些情况下a+k超过了字符串st1的长度:

if (st1[a + k] == subst1[k]) {
message = "True";
}

在执行这条语句之前,验证是否 a + k < st1.length()

但还有一点:什么时候message变成 False你必须停止比较否则变量 message可能又是True .

关于c++ - 在 C++ 中使用循环查找字符串中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33457363/

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