用c语言编写两个程序,输入两个字符串s1s2,判断s2在s1中出现的位置,如果s2是s1的子串,则输出s2的第一个字母在s1中的位置,否则输出-1,如果s2在s1中出现多次,则输出最后一次出现的位置(下标),s1s2的长度不超过80
时间: 2024-03-23 16:37:26 浏览: 103
C语言程序设计-分别统计字符串中字母、数字、空格和其他字符出现的次数(字符长度小于80);.c
5星 · 资源好评率100%
好的,这个问题很简单,我来给你提供一下 C 语言的代码实现。
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s1[81], s2[81];
int len1, len2, i, j, pos = -1;
printf("请输入字符串 s1:");
gets(s1);
printf("请输入字符串 s2:");
gets(s2);
len1 = strlen(s1);
len2 = strlen(s2);
for (i = 0; i <= len1 - len2; i++) {
for (j = 0; j < len2; j++) {
if (s1[i + j] != s2[j]) {
break;
}
}
if (j == len2) {
pos = i;
}
}
if (pos != -1) {
printf("s2 在 s1 中最后一次出现的位置是:%d\n", pos);
} else {
printf("-1\n");
}
return 0;
}
```
这个程序的实现思路是:首先通过 `gets()` 函数分别输入两个字符串 `s1` 和 `s2`,然后通过 `strlen()` 函数获取它们的长度,接着通过两个嵌套循环判断 `s2` 是否为 `s1` 的子串,如果是的话,就记录下 `s2` 在 `s1` 中最后一次出现的位置,最后输出这个位置或者输出 -1。需要注意的是,在本程序中,字符串的下标从 0 开始,因此输出的位置需要加上 1。
阅读全文