C++分两行输入两个字符串(最长30个字符),在第一个字符串中查找第二个字符串是否存在,存在输出“yes”,不存在则输出“no”。
时间: 2024-02-16 22:00:00 浏览: 67
好的,以下是 C++ 的代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str1[31], str2[31];
cin.getline(str1, 31);
cin.getline(str2, 31);
if (strstr(str1, str2) != NULL) {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
return 0;
}
```
首先定义两个字符数组 `str1` 和 `str2`,并使用 `cin.getline()` 分别输入两个字符串,其中 `31` 表示最多输入 30 个字符,最后一个字符默认为 `\0`。
然后使用 `strstr()` 函数在 `str1` 中查找 `str2`,如果返回值不为 `NULL`,说明 `str2` 存在于 `str1` 中,输出 `yes`,否则输出 `no`。
相关问题
c++输入一个字符串,再输入第二个字符串,查找并输出在第一个字符串中是否包含第二个字符串。包含则输出“yes”,不包含则输出“no”。注意,字符串中不包含空格,最长30。
好的,可以使用C++的string和find函数来完成此任务。下面是示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1, str2;
cin >> str1 >> str2;
if (str1.find(str2) != string::npos) {
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
return 0;
}
```
输入第一个字符串和第二个字符串后,使用`find`函数来查找第二个字符串在第一个字符串中的位置。如果找到了,则返回该位置;否则返回`string::npos`。因此,如果`find`函数返回的不是`string::npos`,就说明第一个字符串中包含第二个字符串,输出"yes";否则输出"no"。
输入一个字符串,然后再输入第二个字符串,统计第二个字符串在第一个字符串中出现的次数。(两个字符串长度都不超过100)c++
以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
int main()
{
string s1, s2;
getline(cin, s1); // 输入第一个字符串
getline(cin, s2); // 输入第二个字符串
int cnt = 0; // 计数器
int pos = 0; // 查找起始位置
while ((pos = s1.find(s2, pos)) != string::npos) {
++cnt;
pos += s2.length(); // 继续从下一个位置查找
}
cout << "第二个字符串在第一个字符串中出现的次数为:" << cnt << endl;
return 0;
}
```
首先通过 `getline()` 函数输入两个字符串,然后利用 `string` 类提供的 `find()` 函数查找第二个字符串在第一个字符串中出现的位置,每找到一次就将计数器加 1,最后输出计数器的值。需要注意的是,由于 `find()` 函数返回的是第一次出现的位置,因此需要在每次查找完成后更新查找起始位置,使得下一次查找不会重复计算。
阅读全文