要求使用C++字符串处理方法,调用函数实现判断字符串1中是否包含字符串2。(即字符串2是否是字符串1的子串)。 提示:若字符串1为“cabc” ,字符串2为“ab”,则2是1的子串。
时间: 2023-05-12 08:02:53 浏览: 70
可以使用C语言中的strstr函数来实现判断字符串1是否包含字符串2,该函数的原型为:
char *strstr(const char *str1, const char *str2);
其中,str1为要查找的字符串,str2为要查找的子字符串。如果str2是str1的子串,则返回str2在str1中第一次出现的位置的指针;否则返回NULL。
下面是一个示例代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100];
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
if (strstr(str1, str2) != NULL)
printf("字符串2是字符串1的子串\n");
else
printf("字符串2不是字符串1的子串\n");
return 0;
}
在这个示例代码中,我们首先使用scanf函数从标准输入中读取两个字符串str1和str2,然后调用strstr函数来判断字符串2是否是字符串1的子串。最后根据判断结果输出相应的提示信息。
相关问题
2. 简答题 要求使用C++字符串处理方法,调用函数实现判断字符串1中是否包含字符串2。(即字符串2是否是字符串1的子串)。 提示:若字符串1为“cabc” ,字符串2为“ab”,则2是1的子串。(提示:可使用stirng类的find()方法 )
可以使用C语言中的strstr()函数来判断字符串1中是否包含字符串2,该函数的原型为:
char *strstr(const char *str1, const char *str2);
其中,str1为要查找的字符串,str2为要查找的子串。如果str2是str1的子串,则返回str2在str1中第一次出现的位置的指针;如果str2不是str1的子串,则返回NULL。
下面是一个示例代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100];
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
if (strstr(str1, str2) != NULL)
printf("字符串2是字符串1的子串。\n");
else
printf("字符串2不是字符串1的子串。\n");
return 0;
}
注意,该代码中使用了scanf()函数来读取输入的字符串,如果输入的字符串中包含空格,则只会读取空格前面的部分。如果需要读取包含空格的字符串,可以使用fgets()函数。
在主函数中输入字符串,调用palin()判断字符串是否为回文,若是,输出yes,否则输出no。C++
好的,以下是代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
bool palin(string s) {
int len = s.length();
for(int i = 0; i < len / 2; i++) {
if(s[i] != s[len - i - 1])
return false;
}
return true;
}
int main() {
string s;
cin >> s;
if(palin(s))
cout << "yes" << endl;
else
cout << "no" << endl;
return 0;
}
```
在上面的代码中,我们定义了一个 `palin()` 函数,用来判断输入的字符串是否为回文。然后在主函数中读入字符串,调用 `palin()` 函数来判断是否为回文。如果是,输出 `yes`,否则输出 `no`。