如何获得全角半角字符串的长度?

johnson529 2005-01-24 10:03:00
如果有这样的字符串“3+5应该等于8”,我希望得到它的长度是8而不是12
并且,我如何获得每一个字符?我可不想去的一个乱码字符
谢谢
...全文
164 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnson529 2005-02-02
  • 打赏
  • 举报
回复
还有个问题,如果是EUC的编码,有单字节,双字节和三字节的。这样程序如何区分,从多少开始区分?
johnson529 2005-01-24
  • 打赏
  • 举报
回复
unsigned int i = *str;
i < 160

这样就对了
谢谢
johnson529 2005-01-24
  • 打赏
  • 举报
回复
运行结果好象还是不对吗
爱摸鱼de老邪 2005-01-24
  • 打赏
  • 举报
回复
哇塞,楼上动作好快!
  • 打赏
  • 举报
回复
全角字符由两个ASCII码大于或等于160的字符组成。
分别区分即可。
int len(char *str)
{
int l=0;
bool ischinese = false;
while(*str)
{
if(*str < 160) ++l;
else
{
if(!ischinese) ischinese = true;
else
{
ischinese = false;
++l;
}
}
++ str;
}
return l;
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧