strcat()int变量+ C.

时间:2014-11-18 19:31:18

标签: c int strcat

我需要在此表单上打印一些内容:

  

[1]" text"   [2]" text"   [3]"文字"

我使用strcat(),所以我想连接" text"到缓冲区(我得到"文本"缓冲区中一次一个元素,我需要将它连接到一个字符串)。问题是我似乎无法弄清楚如何将[数字]部分放在前面。首先,是否可以strcat()一个int?我试过了,但似乎无法让它发挥作用。第二,是否有可能获得“' [' ']'变量周围? (我需要为每个循环增加int值)。这可能是一个愚蠢的问题,但我真的无法弄清楚如何解决这个问题,我需要菜单在这个表格上(或类似的东西)。

3 个答案:

答案 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, "[" )
// ...