以下的程序实现了这个功能:
以输入一个空行作为输入结束的标志:
#include <stdio.h>
int main()
{ char s[300]
int i,n=0
gets(s)
while(s[0])
{for(i=0s[i]i++)
if(s[i]<0)n++,i++
gets(s)
}
printf("上面输入的内容中有%d个汉字\n",n)
return 0
}
C中的汉字用“机内码”,一个汉字两字节,最高位都是1,所以可以用下列代码求得一个字符串里汉字的个数:
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"
int main(void){
char a[]="12我34们56都7是来自五a湖c四de海bfg"
int i,sum
for(sum=i=0a[i]i++)
if(a[i]<0) sum++//最高位为1(负数)的是一个汉字的一半
printf("There are %d Chinese characters in this string.\n",sum/2)//输出汉字总数
return 0
}