c语言字符数组和字符串编程题 求解

统计输入的字符串的长度、字母个数、数字个数、其他个数。不能用strlen、gets字符串函数。可用scanf函数%s格式实现输入,可用while(str[i]!='\0'... 统计输入的字符串的长度、字母个数、数字个数、其他个数。
不能用strlen、gets字符串函数。
可用scanf函数%s格式实现输入,可用while(str[i]!='\0') 判断字符串结束统计。
设计子函数 void Total(char st[],int b[]),不在子函数中输出,用数组b存储各个长度。
展开
 我来答
leeming6666
2020-04-29 · TA获得超过3452个赞
知道大有可为答主
回答量:3240
采纳率:85%
帮助的人:726万
展开全部

#include <stdio.h>

int main(){

void Total(char st[],int b[]);

char st[20];

int b[4]={0,0,0,0};

scanf("%s",st);

Total(st,b);

printf("字符串长度:%d,字母个数:%d,数字个数:%d,其他字符个数:%d\n",b[0],b[1],b[2],b[3]);

return 0;

}

void Total(char st[],int b[]){

int i;

while(st[i]!='\0'){

b[0]++;

if((st[i]>='A' && st[i]<='Z')||(st[i]>='a' && st[i]<='z')){

b[1]++;

}else if(st[i]>='0' && st[i]<='9'){

b[2]++;

}else{

b[3]++;

}

i++;

}

}

追问

为啥无法运行

追答

#include <stdio.h>

int main() {

void Total(char st[], int b[]);

char st[20];

int b[4] = { 0,0,0,0 };

scanf_s("%s", st , 20);

Total(st, b);

printf("字符串长度:%d,字母个数:%d,数字个数:%d,其他字符个数:%d\n", b[0], b[1], b[2], b[3]);

return 0;

}


void Total(char st[], int b[]) {

int i=0;

while (st[i] != '\0') {

b[0]++;

if ((st[i] >= 'A' && st[i] <= 'Z') || (st[i] >= 'a' && st[i] <= 'z')) {

b[1]++;

}

else if (st[i] >= '0' && st[i] <= '9') {

b[2]++;

}

else {

b[3]++;

}

i++;

}

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式