Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/20: Рейтинг темы: голосов - 20, средняя оценка - 4.65
DemonZverskii
0 / 0 / 0
Регистрация: 30.05.2011
Сообщений: 74
#1

Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы

07.06.2012, 00:55. Просмотров 3695. Ответов 4
Метки нет (Все метки)

Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы.
_______
Как это задание сделать в C# я более или менее понимаю, но как сделать с C++ увы и ах(
Вобщем то,Насколько понимаю я , надо идти по строке, отметив после первого пробела первое слово, и сохранив его. от следующих двух слов надо взять только первые буквы.


Но загвоздка в том что я совсем не знаю как это сделать на C++( сроки поджимают(

Буду очень благодарен за помощь!

P.S. буду онлайн всю ночь пишите....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 00:55
Ответы с готовыми решениями:

Сформировать из трех строк (фамилия, имя, отчество) одну строку, содержащую фамилию и инициалы
Здравствуйте! Ребят, помогите пожалуйста. Дано три строки, содержащие...

Ввести имя, отчество и фамилию через пробел. Преобразовать их к формату «фамилия-инициалы»
На языке С++

Ввести фамилию, имя и отчество как одно данное типа строка. Заменить на инициалы
Ввести фамилию, имя и отчество как одно данное типа строка. Определить длину...

Ввести фамилию, имя отчество как одного типа строка
Ввести фамилию, имя отчество как одного типа строка. Определить длину строки и...

Ввести фамилию, имя и отчество как одно данное типа строка. Определить длину строки
Помогите искал похожее нету. Ввести фамилию, имя и отчество как одно данное...

4
easybudda
Модератор
Эксперт CЭксперт С++
10054 / 5974 / 1493
Регистрация: 25.07.2009
Сообщений: 11,321
07.06.2012, 01:56 #2
Быдлокод, но работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <string>
#include <sstream>
 
bool famio(std::string & s) {
    std::istringstream ist(s);
    std::string f, i, o;
    if ( ( ist >> f ) && ( ist >> i ) && ( ist >> o ) ) {
        i[1] = o[1] = '.';
        i.resize(2);
        o.resize(2);
        std::ostringstream ost;
        ost << f << ' ' << i << ' ' << o;
        s = ost.str();
        return true;
    }
    else
        return false;
}
 
int main() {
    std::string s;
    
    while ( std::cout << "FIO: " && std::getline(std::cin, s) && ! s.empty() ) {
        if ( famio(s) )
            std::cout << "RET: " << s << std::endl;
        else
            std::cerr << "Wrong string format!" << std::endl;
    }
    
    return 0;
}
1
DemonZverskii
0 / 0 / 0
Регистрация: 30.05.2011
Сообщений: 74
07.06.2012, 05:42  [ТС] #3
Спасибо! пошел разбираться!

Добавлено через 55 минут
Если не сложно накидайте пожалуйста пару коментов, а то я понимаю не все и то достаточно приблизительно
0
easybudda
Модератор
Эксперт CЭксперт С++
10054 / 5974 / 1493
Регистрация: 25.07.2009
Сообщений: 11,321
07.06.2012, 11:36 #4
Цитата Сообщение от DemonZverskii Посмотреть сообщение
я понимаю не все и то достаточно приблизительно
Как-нибудь поточнее напишите, чего не понимаете. В двух словах функция получает строку по ссылке пытается вынуть из неё 3 слова, первое оставляет, как есть, в двух других вставляет точку после первой буквы и обрезает их до 2 символов каждое. После этого сливает все три слова через пробел в строковый поток, из него обратно в переданную строку и возвращает true. Если получить три слова из строки не удалось - вернёт false.
0
DemonZverskii
0 / 0 / 0
Регистрация: 30.05.2011
Сообщений: 74
08.06.2012, 22:09  [ТС] #5
Цитата Сообщение от easybudda Посмотреть сообщение
Как-нибудь поточнее напишите, чего не понимаете. В двух словах функция получает строку по ссылке пытается вынуть из неё 3 слова, первое оставляет, как есть, в двух других вставляет точку после первой буквы и обрезает их до 2 символов каждое. После этого сливает все три слова через пробел в строковый поток, из него обратно в переданную строку и возвращает true. Если получить три слова из строки не удалось - вернёт false.
хм да просто я очень слабо знаю C++ а на изучение нет особо времени( просьба изложить то же самое но в коментариях к коду, поэтапно( ну можно и подробней

Добавлено через 6 минут
ведь проблемма в том что я не знаю что делает та или иная строка
0
08.06.2012, 22:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2012, 22:09

Дана строка: Ваши фамилия, имя и отчество записаны через один пробел. Записать одну фамилию в виде И...в.
Помогите пожалуйста. Дана строка: Ваши фамилия, имя и отчество записаны...

Написать программу, формирующую из одной строки, содержащей фамилию, имя и отчество строку с фамилией и инициалами
Написать программу, формирующую из одной строки, содержащей фамилию, имя и...

Ввести фамилию, имя и отчество как одну строку, найти количество букв "a" в ней, а также длину фамилии и имени
Помогите решить Ввести фамилию, имя и отчество как одно данное типа строка. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru