Ввести в одной строке фамилию, имя и отчество. Вывести, где останутся имя и фамилия - C (СИ)
Формулировка задачи:
Пример:
Введите ФИО:
Пупкин Василий Иванович
Результат:
Привет, Василий Пупкин!
Думаю, надо введеные в одну строку ФИО разбить на отдельные слова и каждое отдельное слово положить в отдельный массив, а затем скопировать к массиву с "Привет," только имя и фамилию. Не знаю как разбить на слова и занести каждое отдельное слово в отдельный массив. Помогите, пожалуйста
Решение задачи: «Ввести в одной строке фамилию, имя и отчество. Вывести, где останутся имя и фамилия»
textual
Листинг программы
- #include <locale.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <wchar.h>
- int main()
- {
- wchar_t fio[BUFSIZ];
- setlocale(LC_ALL, "ru_RU.utf8");
- while (wprintf(L"Введите ФИО через пробел: ")
- && fgetws(fio, BUFSIZ, stdin)
- && *fio != L'\n')
- {
- wchar_t* middle_name = wcsrchr(fio, L' ');
- wchar_t* first_name = wcschr(fio, L' ');
- if (middle_name != NULL && middle_name != first_name)
- {
- wprintf(
- L"Привет, %.*ls %.*ls\n",
- (int)(middle_name - first_name) - 1,
- first_name + 1,
- (int)(first_name - fio),
- fio);
- }
- else
- {
- wprintf(L"Вы не верно ввели ФИО\n");
- }
- }
- return EXIT_SUCCESS;
- }
Объяснение кода листинга программы
- Подключаются необходимые библиотеки для работы с широкими символами и вводом-выводом
- Определяется буфер для ввода ФИО
- Устанавливается локальная настройка на русский язык
- В цикле while происходит запрос на ввод ФИО и проверка корректности введенных данных
- Внутри цикла определяются указатели на первое и последнее имя в строке ввода
- Если указатель на среднее имя не равен NULL и он не совпадает с указателем на первое имя, то выводится приветствие с использованием средним именем и первым именем
- Если указатель на среднее имя равен NULL или совпадает с указателем на первое имя, то выводится сообщение об ошибке ввода ФИО
- Цикл while завершается, когда пользователь вводит корректные данные
- Программа завершается с кодом EXIT_SUCCESS
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д