写一个函数有两个字符串,如果s1不是s2的字符串就返回-1如果s1是s2的子字符串 用c语言
时间: 2024-05-15 22:13:16 浏览: 101
c用c语言编写一个函数,连接两个字符串
4星 · 用户满意度95%
以下是一个简单的C语言函数,用于检查一个字符串s1是否是另一个字符串s2的子字符串。如果s1是s2的子字符串,则返回s1在s2中第一次出现的位置。否则,返回-1。
```c
#include <stdio.h>
#include <string.h>
int isSubstring(char *s1, char *s2) {
int len1 = strlen(s1);
int len2 = strlen(s2);
int i, j;
for (i = 0; i <= len2 - len1; i++) {
for (j = 0; j < len1; j++) {
if (s2[i+j] != s1[j])
break;
}
if (j == len1)
return i;
}
return -1;
}
int main() {
char s1[] = "world";
char s2[] = "hello world";
int pos = isSubstring(s1, s2);
if (pos != -1)
printf("%s is a substring of %s, starting at position %d\n", s1, s2, pos);
else
printf("%s is not a substring of %s\n", s1, s2);
return 0;
}
```
在上面的代码中,我们使用两个嵌套的循环来比较s1和s2中的每个字符。外层循环遍历s2中可能出现s1的每个位置,内层循环检查s1和s2中是否匹配。如果找到匹配,就返回s1在s2中的位置。否则,返回-1。
阅读全文