Задать вопрос
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]);
}
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл разработчик С++
    4 месяца
    Далее
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
char * suit [4] = { "Hearts", "Diamonds", "Clubs", "Spades" };

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

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

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

Похожие вопросы