C语言查找指定字符串的次数
时间: 2023-06-01 12:02:31 浏览: 132
以下是一个简单的C语言程序,用于查找给定字符串在另一个字符串中出现的次数:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100], substr[100];
int count = 0, i;
printf("Enter a string: ");
scanf("%[^\n]s", str);
printf("Enter a substring: ");
scanf(" %[^\n]s", substr);
for (i = 0; i <= strlen(str) - strlen(substr); i++) {
if (strncmp(&str[i], substr, strlen(substr)) == 0) {
count++;
}
}
printf("The substring '%s' appears %d times in the string '%s'\n", substr, count, str);
return 0;
}
```
程序中使用了`strncmp()`函数来比较字符串的子串,该函数的第三个参数指定比较的长度。在循环中,程序通过比较从字符串的每个位置开始的子串来查找给定字符串出现的次数。最后,程序输出给定字符串在字符串中出现的次数。
相关问题
c语言如何统计字符串中字母出现的次数,请问怎么在txt中统计某一字符串出现的次数并输出呢?...
首先,要统计字符串中字母出现的次数,可以使用一个大小为 26 的数组,将每个字母出现的次数记录在对应的数组位置上。具体做法如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
count[str[i] - 'a']++;
} else if (str[i] >= 'A' && str[i] <= 'Z') {
count[str[i] - 'A']++;
}
}
for (int i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%c出现了%d次\n", i + 'a', count[i]);
}
}
return 0;
}
```
如果要在txt文件中统计某一字符串出现的次数并输出,可以按照以下步骤:
1. 打开文件,读取文件内容到内存中;
2. 在内存中查找指定字符串出现的位置,记录出现的次数;
3. 输出统计结果;
4. 关闭文件。
具体代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *fp;
char filename[100], str[100], *content;
int count = 0, len;
printf("请输入文件名:");
scanf("%s", filename);
// 打开文件
fp = fopen(filename, "r");
if (fp == NULL) {
printf("文件打开失败!\n");
exit(1);
}
// 读取文件内容到内存中
fseek(fp, 0, SEEK_END);
len = ftell(fp);
rewind(fp);
content = (char *) malloc(sizeof(char) * (len + 1));
fread(content, sizeof(char), len, fp);
content[len] = '\0';
// 统计字符串出现的次数
printf("请输入要统计的字符串:");
scanf("%s", str);
char *pos = content;
while ((pos = strstr(pos, str)) != NULL) {
count++;
pos++;
}
// 输出统计结果
printf("在文件%s中,字符串%s出现了%d次\n", filename, str, count);
// 关闭文件
fclose(fp);
free(content);
return 0;
}
```
注意:以上代码仅供参考,实际使用中需要进行错误处理和边界检查等。
c语言编程实现在一个字符串中查找指定的字符,并输出指定的字符在字符串中出现的次数及位置,如果该字符串中不包含指定的字符,请输出提示信息。
以下是C语言实现该功能的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], ch;
int count = 0, i;
printf("请输入一个字符串:");
gets(str);
printf("请输入要查找的字符:");
scanf("%c", &ch);
for (i = 0; str[i] != '\0'; i++) {
if (str[i] == ch) {
count++;
printf("%c出现的位置为:%d\n", ch, i + 1);
}
}
if (count == 0) {
printf("该字符串中不包含%c\n", ch);
} else {
printf("%c出现的次数为:%d\n", ch, count);
}
return 0;
}
```
该程序首先让用户输入一个字符串和要查找的字符,然后使用`for`循环遍历字符串中的每一个字符,如果遇到了要查找的字符,就将计数器`count`加1,并输出该字符在字符串中出现的位置。最后根据计数器的值输出相应的提示信息。
阅读全文