【200分】C/C++分割UTF8编码字符串函数

比如输入参数UTF8的字符串:iStr=“字符串string”要求输出字符串数组:[字][符][串][string]关键是如何把汉字按字分开一次最多只能选100分,后面再... 比如输入参数UTF8的字符串:iStr = “字符串string”
要求输出 字符串数组: [字][符][串][string]
关键是如何把汉字按字分开

一次最多只能选100分,后面再加!!!
UTF的长度不仅仅是1和2,加上阿拉伯的一些文字,全世界的文字UTF编码的长度应该是1到6,用第一位是否都可以判断?

★因为UTF8字符串中不一定是汉字,也有可能是其他国家的文字,所以长度不一定是1和2,还有3,4,5,6都有可能。刚刚测试了日文和韩文,同样的方法可以解析出正确的结果。谢拉。“接收的是最后的字符串”这个不是很明白,能否说明一下?
不好意思,节贴的话就不能回复了,恢复完这个马上给分
展开
 我来答
ecchi
推荐于2016-08-29 · 超过53用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:0
展开全部
再补:
我的意思是.我接收的东西是"s字tr符ing串"这样的字符串呢?
抑或不是字符串,而是原始的UTF8字节流?
如果是前者,是两个字节.如果是后者......就麻烦了,还得转换.原始的UTF8字节流确实是1~6的长度的,要按照格式和规则转换.

补:
接收的是最后的字符串还是直接的UTF8字节流?
如果是转了后的字符串,应该只占两位的.

汉字都占两个字符,而且在二进制表示中,最前一位都是1
也就是1xxxxxxx
程序中值为负
就可以这样处理:遇到正的直接输出一个字符,否则连续输出两个字符
如下

#include "stdio.h"
#include "string.h"

int main(){
char str[]="s字tr符ing串";
int i;
int l=strlen(str);
for(i=0;i<l;++i){
if(str[i]>=0){
printf("%c\n",str[i]);
}
else{
printf("%c%c\n",str[i],str[i+1]);
++i;
}
}
}
乐正涵柳3
2007-07-23 · TA获得超过952个赞
知道小有建树答主
回答量:650
采纳率:100%
帮助的人:693万
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define N (100000)

int display(char *ch,int n)
{
int len = n,i;
int flg =0;
if(strlen(ch)<n)
return -1;

for(i=0; i<len-1; i++){
if(ch[i]>0){
flg = 0;
}
else{
flg++;
}
printf("%c",ch[i]);
}
if(ch[len-1] <0){
if(flg%2 > 0)
{
printf("%c",ch[len-1]);
return len-1;
}
}
return len;
}

void main()
{
char ch[] = "中国人abc";
int i;
display(ch,5);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友62e44815e
2007-07-23 · TA获得超过393个赞
知道答主
回答量:243
采纳率:0%
帮助的人:104万
展开全部
取istr的前六个字节,就是“字符串”。汉字都是两个字节划分的。
UTF8 需要转化成gb2312的话要MultiByteToWideChar()函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cuijunj12
2007-07-23 · 超过72用户采纳过TA的回答
知道答主
回答量:895
采纳率:0%
帮助的人:0
展开全部
这个是什么啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友005d6e3ef
2007-07-23 · TA获得超过817个赞
知道小有建树答主
回答量:1357
采纳率:0%
帮助的人:405万
展开全部
好难啊。.
我念完初中就不念了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式