sprintf使用中的奇怪现象
使用sprintf想进行拼串,但是第二次sprintf之后dir变成了空串,百思不得其解
求大神帮忙解释一下!
#include <stdio.h>
#include <string.h>
#define DIR "/root/test/string/R%s/"
int main()
{
char dir[20];
char file[30];
char *id = "105";
sprintf(dir, DIR, id);
printf("sprintf before:%s\n", dir);
sprintf(file, "%srule.conf", dir);
printf("sprintf later%s\n", dir);
return 0;
}
运行结果为:
[root@localhost string]# ./a.out
sprintf before:/root/test/string/R105/
sprintf later
[root@localhost string]#