因为汉字占一个以上字节,如何统计一个既有汉字又有字母的字符串呢?
汉字在计算机中的ASCII是以负数来与其他普通字符的ASCII区分的。
#include<stdio.h> int main() {char buf[256] = "你好世界";printf("%d\n",buf[0]); //-60return 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