用C语言编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原型为:void fun(const char *str, int* char_N, int* letter_N);
时间: 2023-12-29 08:01:57 浏览: 39
好的,根据您的要求,我已经为您编写了一个函数,如下所示:
```c
void fun(const char *str, int* char_N, int* letter_N) {
int i;
*char_N = 0;
*letter_N = 0;
for (i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
(*char_N)++;
} else if (isalpha(str[i])) {
(*letter_N)++;
}
}
}
```
这个函数接收一个字符串 `str`,并统计其中数字字符个数和字母字符个数,将结果分别存储在指针 `char_N` 和 `letter_N` 指向的变量中。在函数内部,我们使用了一个循环遍历字符串中的每一个字符,如果该字符是数字字符,则将 `char_N` 的值加 1,如果该字符是字母字符,则将 `letter_N` 的值加 1。最后,函数返回时,`char_N` 和 `letter_N` 分别存储了数字字符个数和字母字符个数。
注意,在函数中,我们使用了 `isdigit()` 和 `isalpha()` 函数来判断一个字符是否为数字字符或字母字符。这两个函数都是 C 标准库中的函数,需要包含头文件 `<ctype.h>` 才能使用。
相关问题
c语言编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数
可以使用C语言中的字符处理函数isalpha()和isdigit()来判断字符是字母还是数字。以下是一个示例函数:
```c
#include <stdio.h>
#include <ctype.h>
void count(char *str)
{
int letters = 0, digits = 0;
while (*str)
{
if (isalpha(*str))
letters++;
else if (isdigit(*str))
digits++;
str++;
}
printf("字母个数:%d\n数字个数:%d\n", letters, digits);
}
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
count(str);
return 0;
}
```
该函数首先声明了两个变量letters和digits分别用于记录字母和数字的个数,然后使用while循环遍历字符串中的每一个字符,使用isalpha()和isdigit()函数判断字符是否为字母或数字,如果是则对应计数变量加1。最后输出字母和数字的个数即可。
c语言编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原
本可以如下编写:
```c
#include <stdio.h>
#include <ctype.h>
void countCharacters(char *str) {
int numCount = 0;
int letterCount = 0;
while(*str) {
if(isdigit(*str)) {
numCount++;
} else if(isalpha(*str)) {
letterCount++;
}
str++;
}
printf("数字字符个数:%d\n", numCount);
printf("字母字符个数:%d\n", letterCount);
}
int main() {
char input[100];
printf("请输入一个字符串:");
scanf("%s", input);
countCharacters(input);
return 0;
}
```
这个函数接收一个字符串作为参数,然后遍历这个字符串,通过isdigit()和isalpha()函数来判断其中的数字字符和字母字符,分别累加计数。最后在主函数中调用这个函数,输出统计结果。