我想在while循环中读取字符串,直到输入结束,但是我不知道如何。 例如,输入为:
Car
Black car
White car
首先,我要扫描'car'并将其保存在数组中。 然后,我要扫描“黑色汽车”并将其放进去,依此类推。
while (scanf("%[^\n]",s)>0)
这仅读取一行,但是当我使用此代码时:
while(scanf("%s",s) > 0)
它一个接一个地读,所以不会有“ Black car”,而是“ black”和“ car”。
您是否有想法同时满足这两个条件?
而且,我在链表中有两个节点:第一个是“ White car”,第二个是“ Car black”。我想按字母顺序对其进行排序。我想将“白色汽车”的第一个字母“ W”放入数组1,将“汽车黑色”的第一个字母“ C”放入数组2。但是当我打印f array1时,它打印'W',但是当我想打印array2时,它写'CW'?当我打印一个->名称时,它会打印“白色汽车”;当我打印两个->名称时,它会打印“汽车黑色”。
void sort(Car**head){
Car*one;
Car*two;
Car*temp;
one= *head;
two= one->next;
int compare;
char array1[1]={0};
char array2[1]={0};
while(one->next){
compare= 0;
strncpy(array1,one->name,1);
strncpy(array2,two->name,1);
printf("Array1: %s\n",array1);
printf("Array2: %s\n",array2);
printf("One name: %s\n",one->name);
printf("Two name: %s\n",two->name);
compare= strcmp(one->name,two->name);
if(compare<0){
temp = one;
one = two;
two= temp;
}
one = one->next;
two = two->next;
}
}