我有一个调用OutputBuffer服务器时间的函数:

void display(void)
{
    OutputBuffer("This is String One");
    sprintf(PrintBuffer, "String Two %s",modeStr);
    OutputBuffer(PrintBuffer);
    sprintf(PrintBuffer,"AddString = %s",modeStr2);
    OutputBuffer(PrintBuffer);
}


在OutputBuffer中,我想将字符串存储在全局变量char TestBuffer [1000]中,然后在显示器上显示它们:

void OutPutBuffer(char *Buffer)
{
    int var = strlen(Buffer);
    sprintf(TestBuffer, Buffer);
}


我只得到每个字符串的长度,但只有最后一个字符串(AddString ...)。有什么建议如何解决这个问题?

最佳答案

使用strcat

void OutputBuffer(char *Buffer)
{
     int var = strlen(Buffer);

     if(var+strlen(TestBuffer)>=1000)
       return;

    strcat(TestBuffer,Buffer);
}


使用snprintf

void OutPutBuffer(char *Buffer)
{
    int var = strlen(Buffer);

     if(var+strlen(TestBuffer)>=1000)
           return;

    snprintf(TestBuffer+strlen(TestBuffer),var,"%s",Buffer);
}

关于c - 连接字符串并将其存储在ANSI C的缓冲区中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25907520/

10-10 21:55