有两个字符串str和substrc语言
时间: 2024-05-16 16:13:48 浏览: 69
可以使用C语言中的strstr()函数来判断一个字符串是否包含另一个字符串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello world";
char substr[] = "world";
if (strstr(str, substr)) {
printf("%s contains %s\n", str, substr);
} else {
printf("%s does not contain %s\n", str, substr);
}
return 0;
}
```
运行结果:
```
Hello world contains world
```
如果substr不是str的子串,则返回NULL。
相关问题
编写一个函数intcountsubstr(charstr[],charsubstr[]),功能为统计字符串substr在字符串str中出现的次数。主函数中分别输入两个字符串,调用函数,实现对子字符串出现次数的查找。输入母字符串,子字符串输出子字符串在母字符串中出现的次数
下面是一个简单的 C 语言代码实现:
```
#include <stdio.h>
#include <string.h>
int countsubstr(char str[], char substr[]) {
int count = 0;
int len1 = strlen(str);
int len2 = strlen(substr);
for (int i = 0; i <= len1 - len2; i++) {
int j;
for (j = 0; j < len2; j++) {
if (str[i + j] != substr[j])
break;
}
if (j == len2)
count++;
}
return count;
}
int main() {
char str[100];
char substr[100];
printf("请输入母字符串:");
gets(str);
printf("请输入子字符串:");
gets(substr);
int count = countsubstr(str, substr);
printf("子字符串在母字符串中出现的次数为:%d\n", count);
return 0;
}
```
其中,`countsubstr` 函数接受两个参数,分别是母字符串和子字符串,返回子字符串在母字符串中出现的次数。函数中使用两个循环,第一个循环遍历母字符串,第二个循环遍历子字符串,如果有一个字符不匹配,则退出循环。如果子字符串遍历完了,说明匹配成功,计数器加一。主函数中输入母字符串和子字符串,调用 `countsubstr` 函数,输出子字符串在母字符串中出现的次数。
编写一个函数totsubstrnum(char *str,char *substr),它的功能是统计子字符串substr在字符串str中出现的次数
好的,下面是函数的实现:
```c
int totsubstrnum(char *str, char *substr) {
int count = 0;
int str_len = strlen(str);
int substr_len = strlen(substr);
for (int i = 0; i <= str_len - substr_len; i++) {
if (strncmp(str + i, substr, substr_len) == 0) {
count++;
}
}
return count;
}
```
函数的参数是两个字符串指针 `str` 和 `substr`,返回值是子字符串 `substr` 在字符串 `str` 中出现的次数。
函数的实现比较简单,就是遍历字符串 `str` 的所有可能的子字符串,如果找到了一个与 `substr` 相同的子字符串,就将计数器 `count` 加 1。最后返回计数器的值即可。
注意,这里使用了 C 语言的库函数 `strncmp` 来比较两个字符串的前缀是否相同。`strncmp` 函数的第一个参数是一个指向字符串的指针,第二个参数是另一个指向字符串的指针,第三个参数是要比较的字符数。如果前缀相同,就返回 0,否则返回一个非零值。
希望能够帮助到你!
阅读全文