输入一个字符串,请编程统计其中的字母,数字,空格(含制表符),标点符号的个数并输出

#include<stdio.h>#include<ctype.h>intmain(){intj=0,w=0,k=0,l=0,i=0,a=0;charstr1[200];... #include <stdio.h>
#include <ctype.h>
int main()
{
int j=0,w=0,k=0,l=0,i=0,a=0;
char str1[200];
printf("请输入一个长度不超过200的字符串:\n");
gets(str1);
puts(str1);
for(i=0;str1[i]!='/0';i++)
{if(isalpha(str1[i])!=0)
j++;
else if(isalpha(str1[i])!=0)
k++;
else if(ispunct(str1[i])!=0)
l++;
elseif(isspace(str1[i])!=0)
w++;
}
printf("%d,%d,%d,%d",j,k-l,l,w);
return 0;
}
求高手看看哪里错了。1
展开
 我来答
betsy1995
推荐于2017-12-16 · TA获得超过138个赞
知道答主
回答量:40
采纳率:0%
帮助的人:34.6万
展开全部
#include <stdio.h>
#include <ctype.h>
int main()
{
int j=0,w=0,k=0,l=0,i=0,a=0;
char str1[200]="";//字符串要有初始化,否则系统默认赋值,会导致判断错误
printf("请输入一个长度不超过200的字符串:\n");
gets(str1);
puts(str1);
for(i=0;str1[i]!=0;i++)//字符串初始化时,未被赋值的位默认为0,函数检测时会与数字0区分
{
if(isalpha(str1[i])!=0)//字母
j++;
else if(isdigit(str1[i])!=0)//数字
k++;
else if(ispunct(str1[i])!=0)//标点
l++;
else if(isspace(str1[i])!=0)//空格
w++;
}
printf("%d,%d,%d,%d",j,k,l,w);
return 0;
}
dayxueruyi
2012-11-24 · 超过10用户采纳过TA的回答
知道答主
回答量:479
采纳率:33%
帮助的人:65.1万
展开全部
pxcv[osdmv0 -fszov4=ew sgpt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式