2016年11月16日 星期三 阴
如何输入一串带空格的字符串?
例题如下:输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数并输出结果
方法1:gets()函数
#include<stdio.h>
int main()
{
char a[100];
int i=0;
int kg=0;
int yy=0;
int sz=0;
int k=0;
printf("请输入:");
gets(a);
printf("%s\n",a);
while(a[i] != '\0')
{
if( a[i] == 32)
kg++;
if(a[i] >= 'a' & a[i] <='z')
yy++;
if(a[i] >= 'A' & a[i] <='Z')
yy++;
if(a[i] >= '0' & a[i] <='9')
sz++;
i++;
}
printf("空格有%d个\n",kg);
printf("英语字母字符有%d个\n",yy);
printf("数字字符有%d个\n",sz);
return 0;
}
此方法在vc++上编译时未报错,但是在Linux上编译时有一个waring,gets function is dangerousand should not be used
方法二 getchar函数
#include <stdio.h>
int main()
{
intch_num=0;
intint_num=0;
intspace_num=0;
charch=getchar();
while(ch!= '\n')
{
if(ch == ' ')
space_num++;
else if(ch >= '0' &&ch <= '9')
int_num++;
else if((ch >= 'A'&& ch <='Z')||(ch >= 'a' && ch <= 'z'))
ch_num++;
ch =getchar();
}
printf("ch_num=%d\nint_num=%d\nspace_num=%d\n",ch_num,int_num,space_num);
return0;
}
方法3:scanf函数
#include<stdio.h>
int main()
{
char a[100];
int i=0;
int kg=0;
int yy=0;
int sz=0;
int k=0;
printf("请输入:");
scanf("%[^\n]",a);
while(a[i] != '\0')
{
if( a[i] == 32)
kg++;
if(a[i] >= 'a' & a[i] <='z')
yy++;
if(a[i] >= 'A' & a[i] <='Z')
yy++;
if(a[i] >= '0' & a[i] <='9')
sz++;
i++;
}
printf("空格有%d个\n",kg);
printf("英语字母字符有%d个\n",yy);
printf("数字字符有%d个\n",sz);
return 0;
}