一个统计输入字符串中各种字符个数的C语言代码,求指点。。

//输入一行文字,找出其中大写字母,小写字母,空格,数字以及其它字符各有多少。#include"stdafx.h"#include<stdio.h>intma... //输入一行文字,找出其中大写字母,小写字母,空格,数字以及其它字符各有多少。#include "stdafx.h"#include <stdio.h>int main(int argc, char* argv[]){ void star_str(int *p1,int *p2,int *p3,int *p4,int *p5,char *p); char string[50]; char *p; int cap,low,blan,num,other,i; int *p1=&cap,*p2=&low,*p3=&blan,*p4=&num,*p5=&other; printf("请输入字符串:\n"); for(i=0;string[i]=getchar()!='\n';i++)//这里不知道怎么输写 { } p=string; puts(p); star_str(p1,p2,p3,p4,p5,p); printf("有%d个大写字母,%d个小写字母,%d个空格,%d个数字,%d个其它字符",*p1,*p2,*p3,*p4,*p5);    return 0;}void star_str(int *p1,int *p2,int *p3,int *p4,int *p5,char *p){ for(;*p!='\n';p++)//这里不怎么怎么写,循环条件怎么确定? {     if('A'<=*p<='Z')      (*p1)++;     else      if('a'<=*p<='z')       (*p2)++;      else       if(*p=' ')        (*p3)++;       else           if(0<=*p<=9)         (*p4)++;        else         (*p5)++; }} 展开
 我来答
veket的小号
2012-01-05 · TA获得超过3371个赞
知道大有可为答主
回答量:3762
采纳率:0%
帮助的人:3942万
展开全部
#include <stdio.h>
int main()
{
void star_str(int *p1,int *p2,int *p3,int *p4,int *p5,char *p);
char string[50];
char *p;
int cap=0,low=0,blan=0,num=0,other=0,i;
int *p1=&cap,*p2=&low,*p3=&blan,*p4=&num,*p5=&other;
printf("请输入字符串:\n");
for(i=0;(string[i]=getchar())!='\n';i++)//这里不知道怎么输写
{

}
p=string;
puts(p);
star_str(p1,p2,p3,p4,p5,p);
printf("有%d个大写字母,%d个小写字母,%d个空格,%d个数字,%d个其它字符",*p1,*p2,*p3,*p4,*p5); return 0;
}
void star_str(int *p1,int *p2,int *p3,int *p4,int *p5,char *p)
{
for(;*p!='\n';p++)//这里不怎么怎么写,循环条件怎么确定?
{
if('A'<=*p && *p<='Z')
(*p1)++;
else if('a'<=*p && *p<='z')
(*p2)++;
else if(*p==' ')
(*p3)++;
else if('0'<=*p && *p<='9')
(*p4)++;
else
(*p5)++;
}
}
晓风残月hero
2012-01-07 · 超过22用户采纳过TA的回答
知道答主
回答量:188
采纳率:0%
帮助的人:75.1万
展开全部
#include<stdio.h>

int main()
{
char A[1000];
int a,b,c,d,e;
a=b=c=d=e=0;
gets(A); //输入字符

int i;
for(i=0; A[i]!='\0'; i++)
{
if(isupper(A[i])) a++; //是大写
else if(islower(A[i])) b++; //是小写
else if(isdigit(A[i])) c++; //是数字
else if(A[i]=' ') d++; //是空格
else e++; //其它
}

printf("%d %d %d %d %d\n",a,b,c,d,e);
return 0;
}
我写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超想发财9N
2012-01-07 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:112万
展开全部
for(i=0;(string[i]=getchar())!='\n';i++)//这里不知道怎么输写
这种一般用while循环
char c;
while((c=getchar()) != '\n')
{
//你也可以用if
switch(c)
case 'A'<=c && c<='Z' : cap++; break;
case 'a'<=c && c<='z' : low++; break;
case c == ' ' : blan++; break;
case '0'<=c && c<='9' : num++; break;
default:
other++;
}
不需要那个函数的,你输出的时候直接
printf("有%d个大写字母,%d个小写字母,%d个空格,%d个数字,%d个其它字符",cap,low,blan,num,other); 要注意看C支不支持汉字。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式