Как обрезать полное ФИО до инициалов в с++

260
30 мая 2017, 02:42

В программе предусмотрен ввод ФИО. Я не знаю как реализовать, так, что бы вводилось иванов иван иванович, а на выходе получалось Иванов И.И. Посоветуйте пожалуйста с помощью каких функций можно это реализовать. Или может кто сталкивался с такой задачей и у него уже есть готовый код программы.

Answer 1

Зависит от того, как Вы запомнили эти данные. Если у Вас в трех разных массивах (строк, конечно же) лежат ФИО, то ты сначала выводишь массив фамилии, затем по первой букве других массивов. Если же в одном массиве (опять строк) лежит ФИО, то можно различать разные слова при помощи пробелов. Если вам нужен код, то вот вариант, если у нас массив строк:

int main()
    {
    char str[100];
    cin.getline(str, 100);
    int i;
    for (i = 0; str[i] != ' '; i++)
    {
        cout << str[i];
    }
    cout << ' ' << str[i+1] << ". ";
    for (i++; str[i] != ' '; i++);
    cout << str[i + 1] << '.';
    return 0;
}

Если Вам нужно работать со string, то вот код:

int main() 
{
    string str;
    getline(cin, str);
    int i;
    for (i = 0; str[i] != ' '; i++)
    {
        cout << str[i];
    }
    cout << ' ' << str[i+1] << ". ";
    for (i++; str[i] != ' '; i++);
    cout << str[i + 1] << '.';
    return 0;
}
READ ALSO
Поиск объединения промежутков

Поиск объединения промежутков

Мне нужен именно алгоритм

256
Критические секции. C++

Критические секции. C++

Здраствуйте, как правильно поставить критическую секцию в такой функции?

196
Header файлы и их проблема подключения

Header файлы и их проблема подключения

Работаю над проектом с компилятором MinGW32, компилирую в cmdexe и столкнулся с проблемой: Создал header-файл(UIClass

263
Помогите оптимизировать код

Помогите оптимизировать код

В задаче на вход программе дается количество невыполненных заданий и время, которого не хватает на решение этих заданий

258