【发布时间】:2019-09-20 14:39:45
【问题描述】:
我正在尝试要求用户输入 3 个字符。我想将第一个字符和最后两个字符分开。因此,如果“A13”是用户输入,我想将“A”存储在单独的字符中,将“13”存储在单独的字符 [] 中。
//initializations
char seatName[4], seatRowName, seatNumber[3];
printf("\n\nPick a seat (Row Seat) ");
scanf("%s", seatName);
seatRowName=seatName[0];
seatNumber=strchr(seatName, seatRowName);
//I get the "error: incompatible types in assignment" on the above line
示例输出:
选座(Row Seat):A13
//seatRowName = A,seatNumber=13
【问题讨论】:
-
你已经拥有了你需要的东西。
*seatName是'A'和seatName + 1是"13"。 -
使用 field-width 修饰符
"%3s"来保护seatName的数组边界在意外输入附加键时不会溢出——否则调用 未定义的行为。 (此外,--不要吝啬缓冲区大小,32而不是4将是一个更现实的最小值)