#include
int main(void)
{
char s[1000];
int c,e;
char *cp;
gets(s);
cp = s;
c = e = 0;
while(*cp)
{
if(*cp<0)
{
c++;
cp++;
}
else if((*cp >= 'a' && *cp <= 'z') || (*cp >= 'A' && *cp <= 'Z'))
{
e++;
while((*cp >= 'a' && *cp <= 'z') || (*cp >= 'A' && *cp <= 'Z'))
cp++;
}
cp++;
}
printf("汉字%d个,英文单词%d个", c, e);
return 0;
}
#include
int main()
{
int a, b, c,xiaoxie,daxie;
char i;
printf("请输入字符或数字(输入回车结束):\n");
while ((i = getchar()) != 10)
{
if(i>='a'&&i<='z')
xiaoxie++;
if(i>='A'&&i<='Z')
daxie++;
a++;
if (i == ' ')
b++;
if (i >= '1' && i <= '9')
c++;
}
printf("字符个数为%d\n", a);
printf("空格数有%d", b);
printf("\n数字数有%d\n", c);
printf("小写字母有%d\n",xiaoxie);
printf("大写字母有%d\n",daxie);
}
一个汉字由两个连续负值的ASCII码组成。
当ASCII值为负j++,最后汉字个数为j/2
单词个数基本上就是数空格
我和题主一样懒
就这样
#include
#define MAX 1024
int main(void)
{
int sum = 0,chineses = 0;
char str[MAX];
char *ch = str;
printf("请输入一串字符:");
fgets(str,MAX,stdin);
printf("您输入的内容是:%s \n",str);
while(*ch != '\0')
{
if(*ch < 0 && (*ch+1)<0)
{
chineses++;
ch =ch + 2;
}
else
{
ch++;
}
sum++;
}
printf("%d字符 %d汉字",sum-1,chineses);
return 0;
}