一个统计输入字符串中各种字符个数的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)++; }}
展开
3个回答
展开全部
#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)++;
}
}
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)++;
}
}
展开全部
#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;
}
我写的
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;
}
我写的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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支不支持汉字。
这种一般用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支不支持汉字。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询