需要实现一个函数来确定一个字符串中有多少个大写字母、小写字母和数字。该函数必须具有签名:
int calcLetters ( char * iStr , int * oLowerCnt , int * oUpperCnt , int * oDigitsCnt );
这里 iStr 是一个指向以空字符结尾的字符串开头的指针。oLowerCnt、oUpperCnt 和 oDigitsCnt 参数被输出:调用者将一个指向某些局部变量的指针传递给它们以在其中得到相应的结果。函数返回iStr字符串的长度,*oLowerCnt变量必须填写小写字母的个数,*oUpperCnt填写大写字母的个数,*oDigitsCnt填写数字个数。
作为一项测试任务,您需要读取文件的所有行并打印每一行的统计信息。
文件行可以包含任何可打印的 ASCII 字符,包括空格(包括代码 32 到 126)。因此,推荐使用gets来读取字符串。任意字符串的长度不超过 100,字符串可以为空。请注意,文件的最后一行也以换行符结尾。
对于输入文件的每一行,以与示例输出完全相同的格式输出统计信息:
Line 1 has 30 chars: 24 are letters (23 lower, 1 upper), 0 are digits.
Line 2 has 32 chars: 22 are letters (22 lower, 0 upper), 0 are digits.
Line 3 has 26 chars: 18 are letters (17 lower, 1 upper), 0 are digits.
Line 4 has 12 chars: 7 are letters (7 lower, 0 upper), 0 are digits.
Line 5 has 31 chars: 21 are letters (20 lower, 1 upper), 0 are digits.
Line 6 has 13 chars: 6 are letters (6 lower, 0 upper), 1 are digits.
Line 7 has 30 chars: 19 are letters (19 lower, 0 upper), 1 are digits.
Line 8 has 1 chars: 0 are letters (0 lower, 0 upper), 0 are digits.
**我已经挠头一天了,它只是发生了:**
#include <stdio.h>
main() {
char str[255];
int i,let_b, let_s, digit;
gets(str);
let_s = 0;
let_b = 0;
digit = 0;
for (i=0; str[i]!='\0'; i++)
if (str[i] >= 'a' && str[i] <= 'z') let_s += 1;
else if (str[i] >= 'A' && str[i] <= 'Z') let_b += 1;
else if (str[i]>='0'&&str[i]<='9') digit++;
printf("%d %d %d", let_s, let_b, digit);
}```
как сюда впихнуть войд? и что делать, если строк несколько? буду благодарна за ваши ответы
大概是这样的:
该代码是“临时”编写的,因此可能会出现拼写错误-检查!
循环做!!!:-) 像这样的东西: