gpt4 book ai didi

c - 在 C 中格式化文本

转载 作者:行者123 更新时间:2023-11-30 20:42:09 26 4
gpt4 key购买 nike

我需要关于如何处理这项任务的建议。我想格式化字符,以便一行上只有给定数量的字符。用户输入是代表线路最大长度的数字。然后,程序将以单词仅除以一个空格的方式打印字符格式,当某些单词不再适合该行时,它将打印在新行上。示例:

char text="Lorem      ipsum dolor sit amet, consectetuer adipiscing elit. Integer metus";
format(text,20);

预期输出:

Lorem ipsum dolor
sit amet,
consectetuer
adipiscing elit.
Integer metus

最简单的方法是什么?

最佳答案

一个非常简单的实现。它错过了除空格之外的其他分隔符。它不会检查极端情况,例如比行长度长的单个单词等。但我希望它能为您指明方向。

#include <stdio.h>
#include <string.h>

void print_formated(const char *text, size_t size)
{
char *token;
char *rwstring = malloc(strlen(text) + 1);
size_t len = 0;

if(rwstring)
{
strcpy(rwstring, text);
token = strtok(rwstring, " ");
while(token)
{
if(len + strlen(token)> size)
{
printf("\n");
len = 0;
}
printf("%s ", token);
len += strlen(token) + 1;
token = strtok(NULL, " ");
}
free(rwstring);
}
}


int main()
{
print_formated("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer metus", 20);

return 0;
}

关于c - 在 C 中格式化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com