@IgorUZ
Начинающий криворукий программист :-)

Можно ли (и как это сделать) в языке Си в оператор if прописать массив?

Мне нужно сделать так, чтобы когда пользователь в консоль "ru", "uz" или "en", дальнейшая информация шла соответственно либо на русском, либо на узбекском/английском. Как это сделать? Я пытаюсь провернуть это через оператор if, вот как это выглядит:

char lang[1] = "ru";
char lang[1] = "en";
char lang[1] = "uz";
scanf("%s", &lang[1] = "ru");
if( lang[1] == "ru")
printf("русский язык");

Не знаю как правильно это сделать. Буду безмерно благодарен образцу правильного кода и подробному разъяснению, если так нельзя через if сделать, то как тогда?
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Так делать нельзя. С - язык низкоуровневый. Хотите таких сравнений - Вам в Perl, Python или еще чего.
- scanf у Вас притащил с собой '\n' :)
- строка берется через gets(), если ее длина > 2, последний символ забивается '\0'
- дальше идет if конечно же, но if, сравнивающий код возврата от strncmp() - совпало - наш язык, не совпало - не наш.
- Обязательно проверить на то, что юзер ввел лабуду!

Код мне писать неохота, он довольно простой.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
32bit_me
@32bit_me
Программист, встраиваемые системы
Используйте функцию strcmp.
Ответ написан
Ваш ответ на вопрос

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

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