我需要在此表单上打印一些内容:
[1]" text" [2]" text" [3]"文字"
我使用strcat(),所以我想连接" text"到缓冲区(我得到"文本"缓冲区中一次一个元素,我需要将它连接到一个字符串)。问题是我似乎无法弄清楚如何将[数字]部分放在前面。首先,是否可以strcat()一个int?我试过了,但似乎无法让它发挥作用。第二,是否有可能获得“' [' ']'变量周围? (我需要为每个循环增加int值)。这可能是一个愚蠢的问题,但我真的无法弄清楚如何解决这个问题,我需要菜单在这个表格上(或类似的东西)。
答案 0 :(得分:2)
首先,尝试sprintf
将整数放入缓冲区字符串中。然后,将此字符串与您想要的字符串连接起来。
这样的事情:
char string[STRING_SIZE] = "text "
char buffer[BUFFER_SIZE];
sprintf(buffer, "%d", number);
strcat(string, buffer)
根据您的情况调整尺寸。
答案 1 :(得分:1)
您可以使用计数器来了解每个文本字符串的编号:
char buffer[BUFFER_SIZE];
int counter = 1;
while (/* condition for continuing reading buffer */) {
buffer = //readBuffer();
printf("[%d] %s ", counter, buffer);
counter++;
}
printf("\n");
答案 2 :(得分:0)
首先,strcat()是否可以使用int?
不,你必须在char *中转换int。请查看以下实现:http://www.opensource.apple.com/source/groff/groff-10/groff/libgroff/itoa.c。
第二,是否有可能在变量周围得到'['']'?
只需使用strcat添加此
strcat( buffer, text1 );
strcat( buffer, "[" )
// ...