我试过好多方法了,都不行啊。
比如我想过用sizeof() 和 strlen() 我本以为strlen()如果接受一个中文文字就返回1,然后用sizeof()的返回值除以strlen()的返回值就是2,如果不是中文返回的是1,这样是不行的,因为当strlen()接受一个中文文字时返回的也是2。晕了!
我试过好多方法了,都不行啊。
比如我想过用sizeof() 和 strlen() 我本以为strlen()如果接受一个中文文字就返回1,然后用sizeof()的返回值除以strlen()的返回值就是2,如果不是中文返回的是1,这样是不行的,因为当strlen()接受一个中文文字时返回的也是2。晕了!
//给一个例子。希望对你有帮助
#include <stdio.h>
#include <string.h>
void main()
{
char str[]="123abc万高超.,!";
char strBuf[20]={0};
int j=0,nCount=(int)strlen(str);
for(int i=0;i<nCount;i++)
{
//如果小于0则是中文,且后面一个也是中文。
if(str[i]<0)
{
strBuf[j++]=str[i++];
if(i<nCount)strBuf[j++]=str[i];
}
}
printf("中文字符有%d个,它们是:\"%s\"",strlen(strBuf)/2,strBuf);
}