1
我想生成这样的输出“姓氏名:day.month.year”,但我得到的是一些混合的顺序。我是C新手,我不知道这里发生了什么。当我使用printf打印时,为什么输出顺序会改变?
原来这就是我得到
这是我的代码
char string[imax];
fgets (string, imax, team1); //wo, max count, aus welchem file
int i=1, k=0;
char delimiter[] = " ";
char *day, *month, *year, *firstname, *surname;
char *stats[5];
while(fgets(string,imax,team1) != 0)
{
/*stats[0] = strtok(string,delimiter);
while(i <=4)
{
stats[i] = strtok(NULL,delimiter);
i++;
}*/
day = strtok(string,delimiter);
month = strtok(NULL,delimiter);
year = strtok(NULL,delimiter);
firstname = strtok(NULL,delimiter);
surname = strtok(NULL,delimiter);
printf("%s ", firstname);
printf("%s:", surname);
printf("%s.", day);
printf("%s.", month);
printf("%s. ", year);
}
编辑:我会得到相同的顺序,因为我从
从'surname'结尾删除'\ n'。 – interjay
并在最后一个'printf'语句中添加一个'\ n' –