c语言任意输入两个字符串,输出串2在串1中出现的位置和出现的次数
时间: 2024-01-22 14:19:26 浏览: 73
下面是一个简单的C语言程序,可以实现输入两个字符串,输出串2在串1中出现的位置和出现的次数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
int len1, len2, i, j, count = 0;
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
len1 = strlen(str1);
len2 = strlen(str2);
for (i = 0; i <= len1 - len2; i++) {
for (j = 0; j < len2; j++) {
if (str1[i+j] != str2[j]) {
break;
}
}
if (j == len2) {
printf("第%d次出现在位置%d\n", ++count, i);
}
}
if (count == 0) {
printf("字符串2没有在字符串1中出现过\n");
} else {
printf("字符串2在字符串1中出现了%d次\n", count);
}
return 0;
}
```
该程序使用了双重循环来遍历串1和串2,第一个循环从串1的第一个字符开始,到倒数第二个字符为止,第二个循环从串2的第一个字符开始,逐个比较两个字符是否相等,如果有不相等的字符,则跳出内层循环,继续外层循环。如果内层循环执行完毕,说明串2已经完全匹配了串1中的一段子串,此时输出该子串在串1中的位置,并将计数器加1。最后,根据计数器的值输出结果。
阅读全文