用c语言输入字符串s1和s2,判断s1中是否包含有s2,如果没有,输出-1,如果有,输出s2在s1中每次出现时的开始位置,位置从0开始。用字符串,不用函数
时间: 2024-09-30 09:02:30 浏览: 50
在C语言中,你可以通过循环遍历的方式,逐个字符地比较两个字符串来实现这个功能。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s1[100], s2[100];
printf("请输入第一个字符串 s1: ");
fgets(s1, sizeof(s1), stdin); // 注意这里去掉末尾的换行符
s1[strlen(s1) - 1] = '\0'; // 将换行符替换为'\0'
printf("请输入第二个字符串 s2: ");
fgets(s2, sizeof(s2), stdin);
s2[strlen(s2) - 1] = '\0'; // 同样处理换行符
int pos = 0;
while (pos != -1) { // 使用一个负数作为结束标志,表示找不到s2
pos = strstr(s1 + pos, s2); // 使用strstr查找s2在s1中的位置,如果找到返回首地址,未找到则返回NULL
if (pos) {
printf("s2在s1中的位置: %d\n", pos - s1); // 输出起始位置(注意减去s1的长度)
} else {
printf("-1\n"); // 如果找不到就输出-1
break; // 结束循环
}
pos += 1; // 搜索下一个可能的位置
}
return 0;
}
```
阅读全文