if (namelist==NULL)
{
   namelist=(char**)malloc(sizeof(char**));
   namelist[i]=name;
}
else
{
   namelist=(char**)realloc(namelist,(i+1)*sizeof(char**));
   namelist[i]=name;
}

for(i=0;i<count;i++)
{
   printf("%s\t\t%s\n",namelist[i],namelist[i]);
}

问题是如果我输入"abcdefg""abcdefgh""abc"作为输入,我会得到
abcdefg          abcdefg
abcdefgh                    abcdefgh
abc              abc

有什么办法让第二个"abcdefgh"与第二个"abcdefg""abc"保持一致?

最佳答案

停止使用TAB字符(\t)作为分隔符,请改用正确的格式规范,如果您希望字符串以第20列开头,请输入:

printf( "%-20s%s", namelist[i],namelist[i]);

关于C printf char以连续方式大于或等于8个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13529711/

10-11 15:35