C语言设计一函数,函数功能实现统计给定字符串st中出现字符ch的次数,不区分字母大小写。
时间: 2024-02-20 20:01:16 浏览: 45
下面是一个统计字符串中指定字符出现次数的C语言函数的实现:
```c
#include <ctype.h>
int count_char(const char *st, char ch) {
int count = 0;
char ch_lower = tolower(ch);
char ch_upper = toupper(ch);
for (int i = 0; st[i]; i++) {
if (st[i] == ch_lower || st[i] == ch_upper) {
count++;
}
}
return count;
}
```
该函数使用了字符库中的 `tolower` 和 `toupper` 函数,将传入的字符转换为小写和大写字母,从而实现不区分字母大小写。然后使用一个循环遍历字符串中的每个字符,如果发现字符与传入的字符相同(不区分大小写),则计数器增加1。最后返回计数器的值,即为指定字符在字符串中出现的次数。
你可以将该函数插入到你的C程序中,然后通过调用该函数来统计所需的字符串中指定字符出现的次数。
相关问题
设计一函数,函数功能实现统计给定字符串st中出现字符ch的次数,不区分字母大小写。(请从键盘输入字符串) 用C语言
可以使用库函数toupper()将字符转换为大写,然后再进行比较统计。下面是实现的代码:
```c
#include <stdio.h>
#include <ctype.h>
int countChar(char *st, char ch) {
int count = 0;
char c;
while (*st) {
c = toupper(*st++);
if (c == toupper(ch)) {
count++;
}
}
return count;
}
int main() {
char st[100], ch;
printf("请输入字符串: ");
fgets(st, sizeof(st), stdin);
printf("请输入要查找的字符: ");
scanf("%c", &ch);
int count = countChar(st, ch);
printf("字符%c在字符串中出现了%d次\n", ch, count);
return 0;
}
```
首先使用fgets()函数从键盘输入字符串,然后使用scanf()函数输入要查找的字符。接着调用countChar()函数统计字符出现次数,并输出结果。其中toupper()函数用于将字符转换为大写,从而实现不区分大小写。
c语言编写函数 统计给定字符串中各个字母出现的次数 不区分大小写
可以使用一个长度为26的整型数组来统计每个字母出现的次数,同时将所有的字母转换为小写字母进行统计。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void count_letters(char* str, int* count) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
char c = tolower(str[i]);
if (c >= 'a' && c <= 'z') {
count[c - 'a']++;
}
}
}
int main() {
char str[] = "Hello, world!";
int count[26] = {0};
count_letters(str, count);
for (int i = 0; i < 26; i++) {
printf("%c: %d\n", 'a' + i, count[i]);
}
return 0;
}
```
在这个例子中,`count_letters()` 函数接受一个字符串和一个整型数组,统计字符串中每个字母出现的次数,并将结果存储在整型数组中。`main()` 函数定义了一个字符串和一个长度为26的整型数组,然后调用 `count_letters()` 函数来统计字符串中每个字母出现的次数。最后,使用 `printf()` 函数输出结果。