*** 自写代码:计算含有汉字的字符串长度

汉字作为一个字符处理,已知:汉字编码为双字节,其中首字节<0,尾字节在0~63以外(如果一个字节是 -128 ~ 127)

#include <iostream>
#include <string.h>
using namespace std;
int gbk_strlen(char * src)
{
    char * p = src;
    while (*p != '\0')
    {
        if ((*p<0) && (*(p+1)<0 || *(p+1)>63))
        {
            src++;
            p += 2;
        }
        else
        {
            p++;
        }
    }
    return (p - src);
}
int main()
{
    char * p = "abc我们de加油加油!";
    cout << gbk_strlen(p) << endl;
}

 

posted @ 2018-12-23 18:59  super行者  阅读(236)  评论(0编辑  收藏  举报