【发布时间】:2016-02-01 03:22:39
【问题描述】:
代码将从用户那里获取两个字符串并检查字符串,是否包含子字符串作为第二个输入。
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”等输入。输出应该是假的但是当我执行代码时程序直接结束了
【问题讨论】:
-
如果您的代码从未将
str1[a] == subst1[0]评估为true,那么message将不会设置为false,随后会保留为单个空格。它适用于Alice和Abba。
标签: c++ string string-matching