char数组字符串

m_blackpp 2009-12-18 01:58:28
char数组中有中文有英文
我想在某处加入换行符,
我如何知道我加入换行符的地方是否刚好在中文中间。
...全文
334 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
踏实每一步 2009-12-18
  • 打赏
  • 举报
回复
这也是把文件转成unicode就行了。
只要判断30是不是00,如果是,英文,不是就是汉字。
InitialJ 2009-12-18
  • 打赏
  • 举报
回复
干嘛不用Unicode宽字符,每个字符都是双字节
tscc01 2009-12-18
  • 打赏
  • 举报
回复
用TCHAR不就好了- -
判断都不用- -
m_blackpp 2009-12-18
  • 打赏
  • 举报
回复
谢谢大家,我还是没有解决问题

我再说详细一点

我给客户填写资料,里面有英文也有中文

我希望每15个字符加入"\r\n"

当第15 ,16刚好组成一个汉字的时候,在第16个字符的时候加入“\r\n"

判断第15个字符为中文时,我如何知道在15个字符后加入"\r\n"还是在第16个字符后面加

fandh 2009-12-18
  • 打赏
  • 举报
回复
int IsGB(PTSTR pText)
{
unsigned char sqChar[20];
sqChar[0]=*pText;
if (sqChar[0]>=0xa1)
if (sqChar[0]==0xa3)
return 1; //全角字符
else
return 2; //汉字
else
return 0; //英文、数字、英文标点
}
zhou1xp 2009-12-18
  • 打赏
  • 举报
回复
你是要在汉字与英文之间插入么,那定义两个指针指向数组,然后移动数组,找到一个指针是A-Z的ACSII码内,另一个在之外的地方插入
m_blackpp 2009-12-18
  • 打赏
  • 举报
回复
谢谢你们,
但是我发现汉字有时前面的字节和后面的字节都是小于0的。
我判断后面一个字节是不是小于0
我还是不能判断这个字节是第一个字节,还是第二个字节
Ryanwen 2009-12-18
  • 打赏
  • 举报
回复
一般来说中文是由两个字节组成,且第一个字节的值是大于129的

简单的方法就是判断插入位置后的第一个字节是不是小于0

If (at(index) < 0) cout << ”是汉字” << endl;
else cout << ”不是汉字” << endl;

名称 第一字节 第二字节
GB2312 0xB0-0xF7(176-247) 0xA0-0xFE(160-254)
GBK 0x81-0xFE(129-254) 0x40-0xFE(64-254)
Big5 0x81-0xFE(129-255) 0x40-0x7E(64-126)
0xA1-0xFE(161-254)
sandyandy 2009-12-18
  • 打赏
  • 举报
回复
CharNext
My Teching 2009-12-18
  • 打赏
  • 举报
回复
用ASCII码的范围来判断呗,可以到网上搜搜。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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