c++输入一个字符串以及一个子串,输出子串在字符串中的出现次
时间: 2024-05-11 11:18:48 浏览: 99
下面是一个简单的 C 代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], substr[100];
int i, j, count = 0;
printf("请输入字符串:");
gets(str);
printf("请输入子串:");
gets(substr);
for (i = 0; i <= strlen(str) - strlen(substr); i++) {
for (j = 0; j < strlen(substr); j++) {
if (str[i + j] != substr[j]) {
break;
}
}
if (j == strlen(substr)) {
count++;
}
}
printf("子串在字符串中出现的次数:%d\n", count);
return 0;
}
```
这个程序先从用户输入中读取字符串和子串,然后采用双重循环的方式遍历字符串和子串,找到所有可能的匹配位置并记录匹配次数。注意,这里使用的 `gets` 函数不够安全,实际应用中应该使用更为安全的输入函数。
相关问题
输入一个字符串以及一个子串,输出子串在字符串中的出现次数c++
下面是 Python 代码实现:
```python
def count_substring(string, sub_string):
count = 0
start = 0
while True:
index = string.find(sub_string, start)
if index != -1:
count += 1
start = index + 1
else:
break
return count
```
代码解释:
- `string.find(sub_string, start)` 函数会返回 `sub_string` 在 `string` 中第一次出现的位置,如果查找不到则返回 `-1`。
- 我们使用一个 `while` 循环来不断查找子串在字符串中的位置,如果找到了就增加计数器 `count`,同时将查找位置 `start` 修改为上一次找到的位置加一,这样就可以跳过已经找到的部分继续查找。如果查找不到子串就退出循环。
- 最后返回计数器 `count`。
用c++编写一段代码,输入一个字符串和一个子串,输出子串在字符串中出现的次数
好的,我可以为您提供一段 C 代码来实现这个功能:
```
#include <stdio.h>
#include <string.h>
int countSubstring(char *str, char *sub) {
int count = 0;
char *ptr = strstr(str, sub);
while (ptr != NULL) {
count++;
ptr = strstr(ptr + 1, sub);
}
return count;
}
int main() {
char str[100];
char sub[100];
printf("请输入字符串:");
scanf("%s", str);
printf("请输入子串:");
scanf("%s", sub);
int count = countSubstring(str, sub);
printf("子串在字符串中出现的次数为:%d\n", count);
return 0;
}
```
以上代码中的 `countSubstring` 函数接受两个参数:一个字符串和一个子串,它会通过不断地调用 C 标准库中的 `strstr` 函数来定位子串在字符串中出现的位置,直到无法找到为止。在每次定位到子串之后,函数都会累加一个计数器。最终,它会返回该计数器的值,即子串在字符串中出现的次数。
请注意,在此过程中,`countSubstring` 函数没有修改原始的字符串或子串。如果您需要修改原始的字符串或子串,请使用 C 标准库中的字符串操作函数,例如 `strcpy`,`strcat` 等。
阅读全文