因为汉字占一个以上字节,如何统计一个既有汉字又有字母的字符串呢?
汉字在计算机中的ASCII是以负数来与其他普通字符的ASCII区分的。
#include<stdio.h> int main() { char buf[256] = "你好世界"; printf("%d\n",buf[0]); //-60 return 0; }
所以想要统计混合字符串中字符个数,就要用到这个特性。
#include<stdio.h> int main() { char buf[256] = "你好abc"; int iLen = 0; int bufSize = 0; while(buf[iLen]) { if(buf[iLen] < 0) { iLen++; // continue; } iLen++; bufSize++; } printf("%d",bufSize); }
输出结果:5