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

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

我会拿到一长串字符,我并不确定会包含哪些内容(中英文都可能),但是我的控件大小是固定的,只能展示一百多像素宽度、高度不限的内容。所以我需要对内容进行处理。
目前仅能简单的区分字符,后面我会加上区分单词等模块。
问题来了,怎么区分文字和字符?按照我写的会把字符打碎比如汉字,导致显示异常,有更好的方案吗?
仅使用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. 汉字不能被改变为乱码,比如问号,英文随意,反正都是字母拼起来的

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