C语言:输入两个字符串str1和str2,输出str2在str1中的所有位置,没有则输出no
时间: 2023-06-26 17:10:32 浏览: 241
C语言判断字符串是否以str2开头代码
以下是一个基于C语言的实现,可以实现输入两个字符串str1和str2,输出str2在str1中的所有位置,没有则输出no:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("请输入字符串1:");
scanf("%s", str1);
printf("请输入字符串2:");
scanf("%s", str2);
int len1 = strlen(str1), len2 = strlen(str2);
int i, j, k, flag;
for (i = 0; i <= len1 - len2; i++) {
flag = 1;
for (j = 0, k = i; j < len2; j++, k++) {
if (str2[j] != str1[k]) {
flag = 0;
break;
}
}
if (flag) {
printf("在位置%d处发现字符串2\n", i);
}
}
if (!flag) {
printf("no\n");
}
return 0;
}
```
该程序首先使用`scanf`函数分别读入两个字符串`str1`和`str2`,然后使用`strlen`函数求出两个字符串的长度。接着,使用两个循环嵌套来枚举`str2`在`str1`中出现的位置,具体地,外层循环控制`str2`在`str1`中的起始位置,内层循环则用于比较`str1`和`str2`中对应位置的字符是否相同。如果在某个位置发现`str2`,则输出该位置。最后,如果没有发现`str2`,则输出`no`。
阅读全文