我有一个调用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/