如何取中文与字母字符串中的字!?

meiyaa 2008-04-07 06:12:13
如何取中文与字母字符串中的字!?
我写个函数StrMid(CString dest,int startindex,int endindex)取中文与英文的子个数

例子:中国人china

我想取(0,3)显示中国人
(3,7)显示 chin
...全文
43 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2008-04-07
  • 打赏
  • 举报
回复
IsDBCLByte()来判断是不是双字节,汉字就是双字节的!
许振坪 2008-04-07
  • 打赏
  • 举报
回复
巧用_tcsncpy函数就成了。
systemthink 2008-04-07
  • 打赏
  • 举报
回复
看老大做题。。。
用户 昵称 2008-04-07
  • 打赏
  • 举报
回复
先从头向后找到你需要的开始地方

size_t i, j, l, k;
l = strlen( t );
j = 0;
for( i = 0; i < l; i++ )
{
if( ( unsigned char )t[ i ] >= 0xa0 && ( unsigned char )t[ i + 1 ] >= 0xa0 )
{
memcpy( tt + j, t + i, 2 );
j += 2;
i++;
}
else
{
j++;
}
}


然后判断你指定的开始是否是一个整汉字,如果不是就加一个字节的偏移。
菜牛 2008-04-07
  • 打赏
  • 举报
回复
如果是UNICODE,用宽字符函数;否则用多字节函数;用_tcs前缀的通用宏更方便。

16,472

社区成员

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

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

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