求一个C语言的解答:

来源:百度知道 编辑:UC知道 时间:2024/05/13 09:14:34
由键盘输入一个字符串到字符数组C中,统计并显示出其中字符个数,空格个数,数字个数及其百分比,最后统计单词个数。设计要求:要求用字符组来存放。要求用do...while循环。
谢谢各位高手为菜鸟我解答

允许开始段和结束段带多个空白,允许中间有连续空白。
未考虑tab 等不可见字符。假定输入到'\n' 结束。

#include <stdio.h>
#include <stdlib.h>

void main()
{
char str[1024];
char str2[1024];
int i,n,len,len2,flag=0;
int n_sp=0,n_num=0,n_letter=0,n_word=0;

i=0;
while(1){
str[i] = getchar();
if (str[i] == '\n') {str[i]='\0'; break;};
i++;
}

len = strlen(str);
for (i=0;i<len;i++) {
if (str[i] == ' ') n_sp ++;
if (str[i] >= '0' && str[i] <= '9') n_num++;
if (str[i] >= 'a' && str[i] <= 'z') n_letter++;
if (str[i] >= 'A' && str[i] <= 'Z') n_letter++;
};

if (str[0]==' ' ) str[0]='a';
for(i=len-1;i>=1;i--) if (str[i] != ' ') {break;} else str[i] ='\0';
len2 = strlen(str);
for(i=1;i<len2;i++) if (str[i-1] == '