小憨笔记:
①在输入包含空格字符串的时候,不可使用scanf();
只能使用while((c[i]=getchar()!=’\n’) i++; 来输入。
②在给char类型的数组,赋值时,一定要在数组的最后附上’\0’,否则输出时,数组的剩下部分会出现乱码
#include <stdio.h>
#include <string.h>
void main()
{
void copy(char *p,char *q,int m);
void print(char *arr,int n);
int countlen(char *a);
void judge(char *arr,int n);
char arr[100];
int i=0;
printf("input String:");
while((arr[i]=getchar())!='\n')
i++;
arr[i]='\0';
judge(arr,i);
}
void judge(char *arr,int n)
{
int i,number=0,Lett=0,lett=0,space=0,other=0;
for(i=0;*(arr+i)!='\0';i++)
{
if(*(arr+i)<='9'&&*(arr+i)>='0')
{
number++;
}
else if(*(arr+i)<='Z'&&*(arr+i)>='A')
{
Lett++;
}
else if(*(arr+i)<='z'&&*(arr+i)>='a')
{
lett++;
}
else if(*(arr+i)==32)
{
space++;
}
else
{
other++;
}
}
printf("number=%d Letter=%d letter=%d space=%d other=%d",number,Lett,lett,space,other);
}
运行结果:
input String:aaaAAA... 133
number=3 Letter=3 letter=3 space=3 other=3