用c语言编写代码输入两个字符串,用空格隔开,计算字符串中子串出现次数
时间: 2024-03-10 18:46:16 浏览: 23
好的,我来为您解答这个问题。以下是用 C 语言编写的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[1000], sub[1000];
int count = 0, i;
printf("请输入两个字符串,用空格隔开:\n");
scanf("%s %s", str, sub);
for (i = 0; i <= strlen(str) - strlen(sub); i++) {
if (strncmp(str + i, sub, strlen(sub)) == 0) {
count++;
}
}
printf("子串 %s 在字符串 %s 中出现了 %d 次。\n", sub, str, count);
return 0;
}
```
代码解析:
首先定义了两个字符串 `str` 和 `sub`,用于存储输入的字符串和子串。
然后使用 `scanf` 函数从标准输入中读取两个字符串,用空格隔开。
接着使用 `for` 循环遍历 `str` 中的每一个字符,判断以该字符为起点的子串是否与 `sub` 相等。如果相等,则计数器 `count` 加一。
最后输出结果。
需要注意的是,在判断两个字符串是否相等时,我们使用了 `strncmp` 函数。该函数可以比较两个字符串的前 `n` 个字符是否相等,避免了因为字符串长度不同而导致的错误。