Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
#1

Как сократить до инициалов? - C++

28.12.2010, 15:10. Просмотров 1074. Ответов 4
Метки нет (Все метки)

Нужно сократить например Фамилия Имя Отчество до Фамилия И. О.
Пожалуйста, подскажите или напишите как это сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2010, 15:10     Как сократить до инициалов?
Посмотрите здесь:

Как сократить запись? - C++
Здравствуйте, дорогие форумчане! Имеется вот такой код: for(int i = 0; i < n; i++) { int t; in >> t; // как сократить эти ...

Как сократить запись? - C++
Всем привет! Пишу ASCII-игру и вот такой вопросик по коду: while(brk) play(level1); brk = 1; while(brk) play(level2); brk =...

Корбен_Даллас-- //Как сократить текст пр-мы?))) - C++
Здравствуйте) Подозреваю о существовании указателей, но нигде не могу найти инф-ии как это использовать для сокращения кода (наверное...

Путь к файлу, как сократить? - C++
Добрый день, Поисковик ответа не дал. Необходимо создать файл в папке, находящейся в корневом каталоге программы. Т.е. , к примеру,...

Как можно сократить массив? - C++
Как можно сократить масив? К примеру есть масив: A =...

Как сократить время работы программы?! - C++
Нужно сократить время работы программы по вычислению чисел Фибоначчи: Вот мой код: #include "stdafx.h" #include <iostream> #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
28.12.2010, 15:15     Как сократить до инициалов? #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
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::cout<<"Enter FIO\n";
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    std::string tmp;
    std::vector<std::string> vec;
    while(ist >> tmp)
        vec.push_back(tmp);
    if(vec.size() > 3)
    {
        std::cout<<"Too many words\n";
        return 1;
     }
    for(size_t i=1; i<vec.size(); ++i)
    {
        vec[i]=vec[i][0];
        vec[i]+=".";
    }
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(std::cout, " "));
    return 0;
}
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
28.12.2010, 16:47  [ТС]     Как сократить до инициалов? #3
Спасибо! Еще бы комментарии , иначе не разберусь
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
28.12.2010, 17:41     Как сократить до инициалов? #4
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
33
34
35
36
37
38
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::cout<<"Enter FIO\n";
    std::string str;
    //Ввод строки
    std::getline(std::cin, str);
    //Создание потока
    std::istringstream ist(str);
    std::string tmp;
    //Сюда будут записываться слова
    std::vector<std::string> vec;
    //Читаем из потока до пробела в строку
    while(ist >> tmp)
        //Записываем слова в вектор
        vec.push_back(tmp);
    //Если размер вектора более трех, то есть было введено более 3 слов
    if(vec.size() > 3)
    {
        std::cout<<"Too many words\n";
        return 1;
     }
    //Имя и отчество пишем первый символ и точку вместо строки
    for(size_t i=1; i<vec.size(); ++i)
    {
        vec[i]=vec[i][0];
        vec[i]+=".";
    }
    //Вывод в поток через алгоритм copy
        std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(std::cout, " "));
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2010, 18:31     Как сократить до инициалов?
Еще ссылки по теме:

Можно ли как-то сократить объявления using в начале программы? - C++
Запариля уже объявлять каждый раз в таком роде... using std::cin; using std::cout; using std::endl; using std::string; using...

Поделитесь советом. Как сократить еще 1 символ. =) - C++
c&gt;&gt;a; a--; while(g+=a&amp;1, a/=2); o&lt;&lt;g%3; Подскажите, пожалуйста, реально ли укоротить ее еще? )))

Как сократить запись при инициализации статических переменных? - C++
Добрый день. Есть в шаблонном классе набор non-const статических переменных, которые инициализируется, соответственно, вне класса: ...

как сократить название пространства имен namespace не убирая полностью ? - C++
Существует ли какой-нибудь способ сократить путь во вложенном пространстве имен путем замены на другое более короткое название, но...

Подскажите, как сократить время работы кода? Проверка на простое число - C++
#include &lt;iostream&gt; using namespace std; int main() { int x, k = 0; cin &gt;&gt; x; for (int i = 1; i &lt;= x;...

Сократить дробь - C++
Смысл задачи в том, что когда ввожу например дробь 3/9 в результате мне должно вывести не скоротную дробь, то бишь 1/3


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

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
29.12.2010, 18:31     Как сократить до инициалов? #5
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
33
34
35
36
37
38
39
40
41
42
43
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <sstream>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string  T_str;
//////////////////////////////////////////////////////////////////////////////////////
T_str  get_initials(T_str s)
{
    struct  T_to_init
    {
        int  n_;
        T_to_init() : n_() {}
        T_str  operator()(const T_str&  word)
        {           
            return n_ > 2 ? "" : n_++ ? word.substr(0, 1) + '.' : word;            
        }
    };
    std::istringstream            ssin(s);  
    std::istream_iterator<T_str>  ssin_beg(ssin);
    std::istream_iterator<T_str>  ssin_end;
 
    std::ostringstream            sout;
    std::ostream_iterator<T_str>  sout_beg(sout, " ");
 
    std::transform(ssin_beg, ssin_end, sout_beg, T_to_init());
    return  sout.str();
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    T_str  s;
    for(;;)
    {
        std::cout << std::endl
                  << "FIO: ";
        getline(std::cin, s);
        if(s.empty()) break;
        std::cout << get_initials(s)
                  << std::endl;
    }  
}
Yandex
Объявления
29.12.2010, 18:31     Как сократить до инициалов?
Ответ Создать тему
Опции темы

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