Candang147 2021-12-24 14:02 采纳率: 0%
浏览 14

长字符串自动加入换行怎么做?有好的实现方法吗?

问题遇到的现象和发生背景

我会拿到一长串字符,我并不确定会包含哪些内容(中英文都可能),但是我的控件大小是固定的,只能展示一百多像素宽度、高度不限的内容。所以我需要对内容进行处理。
目前仅能简单的区分字符,后面我会加上区分单词等模块。
问题来了,怎么区分文字和字符?按照我写的会把字符打碎比如汉字,导致显示异常,有更好的方案吗?
仅使用C语言,其他语言不考虑!
可以把单词换行展示
例如bug 可以展示为
b
ug
但汉字绝对不能被拆解破坏!

问题相关代码,请勿粘贴截图

#define CHAT_MAX_WORD 10
int main(void)
{
char content[50] = {0};
sprintf(content,"AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLL");

int count = sizeof(content)/sizeof(content[0]);

printf("%s %d\n",content,count);
int count_max = count + count%CHAT_MAX_WORD;
printf("%d\n",count_max);

char *temp = (char *)malloc(count_max);
memset(temp,0,count_max);

int j = 0;
for(int i = 0; i < count; i++)
{

    if(i%CHAT_MAX_WORD == 0 && i != 0)
    {
        temp[j] = '\n';
        temp[j+1] = content[i];
        j+=2;

    }
    else
    {
        temp[j] = content[i];
        j++;

    }

}

printf("%s%d",temp,count_max);
free(temp);
return 0;

}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果
  1. 汉字不能被改变为乱码,比如问号,英文随意,反正都是字母拼起来的
  • 写回答

1条回答 默认 最新

  • Admini$trat0r .net领域新星创作者 2021-12-24 14:08
    关注

    汉子可以看做是unicode 比如\u1234 假设他是一个字 拿到了看编码 他占几个字符 如果快分割了判断转义 比如这个提前4位判断 然后直接换行

    评论

报告相同问题?

问题事件

  • 创建了问题 12月24日

悬赏问题

  • ¥15 Windows下部署Asmjit
  • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
  • ¥15 微信小程序 前端页面内容搜索
  • ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
  • ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
  • ¥30 java spring boot2.5.3版本websocket连不上
  • ¥15 angular js调外部链接查看pdf
  • ¥15 openFOAM DPMFoam
  • ¥15 将查询到的值,赋值到table指定行中
  • ¥50 docker容器内部启动shell脚本多命令