Используйте код ниже:
seatRowName=seatName[0];
strcpy(seatNumber, &seatName[1]); // strncpy if you want to be safe
Если вы никогда не измените seatName
, вы также можете использовать const char *seatNumber = &seatName[1];
Почему это работает:
+0 +1 +2 +3
+---+---+---+---+
seatName | A | 1 | 3 | \0|
+---+---+---+---+
[0] [1] [2] [3]
В памяти seatName
хранит содержимое в непрерывном пространстве.Этот подход будет хорошо работать даже для таких входных данных, как A3
.Вы должны предоставить другие проверки работоспособности для ввода.
seatNumber=strchr(seatName, seatRowName);
Я получаю "ошибку: несовместимые типы в присваивании" в строке выше
strchr
возвращает char *
и тип seatNumber
равен char [3]
.Поскольку типы RHS и LHS различны, вы получаете ошибку выше.В отличие от многих популярных языков C
этого не позволяет.
Назначение яблок апельсинам почти всегда некорректно.strcpy(A, B);
вместо A = B
будет работать в этом случае.