Qubc
@Qubc
Ненавижу полисемию.

Как изменить строку, инициализированную при объявлении массива символьных указателей, с помощью scanf?

#include <stdio.h>
int main()
{
	char * suit [4] = { "Hearts", "Diamonds", "Clubs", "Spades" };
	suit[1] = "Hello";
	scanf ("%4s",  ); //Всевозможные варианты не работают.
	printf ("%s\n", suit[2]);
}
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
char * suit [4] = { "Hearts", "Diamonds", "Clubs", "Spades" };

Как изменить строку, инициализированную при объявлении массива символьных указателей, с помощью scanf?

В данном случае -- только выделив память для новой строки, сделав scanf туда и присвоив указатель на выделенную память элементу массива suit. Напрямую в первоначальный массив -- никак, потому что указатели указывают на константные строки (а возможность писать char * вместо const char * -- это устаревшее средство обеспечения совместимости с древними версиями стандарта).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы