用c++判断一个字符串是否是另一个字符串的子字符串
时间: 2023-05-31 20:05:15 浏览: 295
以下是一个用C语言判断一个字符串是否是另一个字符串的子字符串的示例代码:
```c
#include <stdio.h>
#include <string.h>
int isSubstring(char str1[], char str2[]) {
int len1 = strlen(str1);
int len2 = strlen(str2);
for (int i = 0; i <= len2 - len1; i++) {
int j;
for (j = 0; j < len1; j++) {
if (str2[i+j] != str1[j]) {
break;
}
}
if (j == len1) {
return 1; // str1 是 str2 的子字符串
}
}
return 0; // str1 不是 str2 的子字符串
}
int main() {
char str1[] = "abc";
char str2[] = "defgabcxyz";
if (isSubstring(str1, str2)) {
printf("%s 是 %s 的子字符串", str1, str2);
} else {
printf("%s 不是 %s 的子字符串", str1, str2);
}
return 0;
}
```
该程序定义了一个名为`isSubstring`的函数,该函数接受两个字符串作为参数,并返回一个整数值。如果第一个字符串是第二个字符串的子字符串,则该函数返回1,否则返回0。
在主函数中,我们将两个字符串传递给`isSubstring`函数,并根据该函数的返回值打印相应的消息。在这个例子中,我们期望输出结果为`abc是defgabcxyz的子字符串`。
该程序的核心代码是两个嵌套的循环。外层循环从0到`len2 - len1`遍历第二个字符串,其中`len1`和`len2`分别是第一个和第二个字符串的长度。内层循环从0到`len1`遍历第一个字符串,并检查它是否与第二个字符串的相应子字符串匹配。如果匹配成功,则返回1,否则继续外层循环的下一个迭代。如果整个循环结束后没有找到匹配项,则返回0。
阅读全文