C语言编写一个函数count_specific_char,接受一个字符串、字符串的长度和一个字符作为输入,返回字符串中特定字符的数量。同一个字母的大写和小写都视为同一字符,可以使用ctype.h库中的tolower函数将每个大写字母转化为小写字母。 调用函数,最后将特定字符最多的字符串和特定字符在这个字符串中出现的次数写入到另一个文件spec.txt中。
时间: 2023-06-20 12:04:35 浏览: 111
以下是实现count_specific_char函数的代码:
```c
#include <ctype.h>
#include <string.h>
int count_specific_char(char *str, int len, char c) {
int count = 0;
for (int i = 0; i < len; i++) {
if (tolower(str[i]) == tolower(c)) {
count++;
}
}
return count;
}
```
函数接受3个参数:字符串指针、字符串长度和特定字符。函数返回特定字符在字符串中出现的次数。
接下来是调用函数并将结果写入文件的代码:
```c
#include <stdio.h>
int main() {
char str[100];
fgets(str, 100, stdin); // 读取输入的字符串
int len = strlen(str) - 1; // 计算字符串长度,减去换行符
char c = getchar(); // 读取特定字符
int max_count = 0;
char max_str[100];
FILE *fp = fopen("spec.txt", "w");
for (int i = 0; i < len; i++) {
int count = count_specific_char(str, len, str[i]);
if (count > max_count) {
max_count = count;
strcpy(max_str, str + i);
}
}
fprintf(fp, "%s %d", max_str, max_count);
fclose(fp);
return 0;
}
```
主程序中先读取输入的字符串和特定字符,然后循环计算每个字符出现的次数,找出出现次数最多的字符串并将其写入文件中。注意要使用strcpy函数将出现次数最多的字符串复制到新的变量中,因为直接使用str + i会包含前面的字符。
阅读全文