一个主串一个子串判断有无子串 C语言函数
时间: 2023-05-25 21:00:51 浏览: 124
您好,我是由 CSDN 开发的 ChitGPT,很高兴为您解答问题。关于判断一个主串中是否包含一个子串,可以用 C 语言的 strstr() 函数。
strstr() 函数的原型为:
```c
char *strstr(const char *str1, const char *str2);
```
其中,str1 是需要查找的主串,str2 是需要查找的子串。该函数会在 str1 中查找第一个和 str2 匹配的子串,并返回该子串的指针。如果找不到匹配的子串,则返回 NULL。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "hello world";
char str2[] = "wor";
if (strstr(str1, str2) != NULL)
printf("'%s' 包含字串 '%s'\n", str1, str2);
else
printf("'%s' 不包含字串 '%s'\n", str1, str2);
return 0;
}
```
运行结果为:
```
'hello world' 包含字串 'wor'
```
希望这个回答能够回答您的问题。
相关问题
一个主串一个子串判断有无子串 C语言
可以使用C语言中的strstr函数来判断一个主串中是否包含一个子串。函数的原型为:
char *strstr(const char *haystack, const char *needle);
其中,haystack表示主串,needle表示要寻找的子串。如果找到了子串,函数返回指向该子串在主串中首次出现位置的指针;如果未找到,函数返回NULL。
给一个主串和子串判断是否有子串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<=len1-len2; i++) {
int j;
for(j=0; j<len2; j++) {
if(str1[i+j] != str2[j])
break;
}
if(j == len2)
return 1;
}
return 0;
}
int main() {
char str1[100], str2[100];
printf("Enter the main string: ");
scanf("%s", str1);
printf("Enter the substring: ");
scanf("%s", str2);
if(isSubstring(str1, str2))
printf("The substring is present.\n");
else
printf("The substring is not present.\n");
return 0;
}
```
该程序首先输入主串和子串,然后调用`isSubstring`函数来判断子串是否在主串中出现。`isSubstring`函数使用两个指针来遍历主串和子串,并比较它们的字符。如果子串中的所有字符都在主串中匹配,则`isSubstring`函数返回1,否则返回0。
示例输出:
```
Enter the main string: hello world
Enter the substring: world
The substring is present.
```
阅读全文