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

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

Войти
Регистрация
Восстановить пароль
 
 
Sabi_na
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 20
#1

Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" - C++

11.12.2013, 17:05. Просмотров 960. Ответов 25
Метки нет (Все метки)

Всем привет.
Помогите пожалуйста, написать код, так как сама не разбираюсь, а нужно сделать эту задачу)
Всем буду очень благодарна за помощь.

Условие задачи:
Введите с клавиатуры терминала массив строк. Каждая строка имеет вид:" Фамилия Имя" (разделяются одним пробелом). Признак окончания ввода массива - строка, содержащая слово "exit". Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия".

Вот для примера используйте пожалуйста эти имена и фамилии:

Rudenok Sabina
Polishchuk Tanya
Kharchenko Julia
Tymoshenko Dasha

а выводить должно:
S. Rudenok
T. Polishchuk
J. Kharchenko
D. Tymoshenko

Добавлено через 5 часов 18 минут


Добавлено через 18 часов 20 минут
может кто-то делал похожий пример ? помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2013, 17:05     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия"
Посмотрите здесь:
C++ Функция должна возвращать новый массив, состоящий из отрицательных элементов исходного массива
При сокращении "Фамилия Имя Отчество" к "Фамилия И.О." пропадают "И.О." C++
C++ Программа должна удалять из строки все символы, что стоят на чётных местах после буквы "а"
C++ Класс "Телефонная станция". Массив символов и массив строк - в чем разница?
C++ При вводе определенных переменных программа должна возвращать пользователя обратно к первому шагу
C++ Класс "Одномерный массив строк фиксированной длины"
Заполнять массив строк пока не будет введено слово "stop". C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
11.12.2013, 17:42     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #2
Sabi_na,
Offtop:
вам не помогают не потому, что не знают, как это сделать, а потому, что это смертельно скучно.
Sabi_na
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 20
11.12.2013, 17:48  [ТС]     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #3
Цитата Сообщение от StackOverflow Посмотреть сообщение
Sabi_na,
Offtop:
вам не помогают не потому, что не знают, как это сделать, а потому, что это смертельно скучно.
блин скучно, никто не хочет мне помочь(
я могу заплатить за эту задачу, она мне очень нужна.
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
11.12.2013, 17:55     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #4
Sabi_na,
напишите пожалуйста в ЛС, когда вам нужна эта программа.
Sabi_na
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 20
11.12.2013, 18:14  [ТС]     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #5
Цитата Сообщение от StackOverflow Посмотреть сообщение
Sabi_na,
напишите пожалуйста в ЛС, когда вам нужна эта программа.
у меня еще закрытые ЛС, на пятницу сможешь сделать ?
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
11.12.2013, 18:20     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #6
Sabi_na,
Offtop:
без проблем, если меня не опередят)
Sabi_na
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 20
11.12.2013, 18:23  [ТС]     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #7
Цитата Сообщение от StackOverflow Посмотреть сообщение
Sabi_na,
Offtop:
без проблем, если меня не опередят)
ну если ты знаешь как делать и есть время, можешь и сейчас сделать, от меня большое спасибо и вознаграждение за помощь)
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
12.12.2013, 02:44     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #8
Sabi_na,
если есть вопросы, спрашивай, на все отвечу.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//StackOverflow
//All rights reserved.
 
#include <iostream>
#include <vector>
#include <cctype>
using namespace std;
 
int main()
{
    const int capacity = 50;
    vector<string> * catalog[ capacity ];
    
    for ( int i = 0; i < capacity; i++ )
    {
        catalog[ i ] = new vector<string>;
        catalog[ i ]->reserve( 2 );
    }
 
    int index = 0;
    string fullName;
 
    do {
        getline( cin, fullName );
 
        string name;
        string surname;
        size_t position = fullName.find( ' ', 0 );
 
        while ( position != std::string::npos )
        {
            if ( position == 0 )
            {
                fullName.erase( fullName.begin() );
                position = fullName.find( ' ', 0 );
            }
            else
            {
                surname.assign( fullName, 0, position );
                name.assign( fullName, position + 1, fullName.length() - ( position + 1 ) );
                catalog[ index ]->push_back( name );
                catalog[ index ]->push_back( surname );
                position = std::string::npos;
            }
        }
        
        ++index;
 
    } while ( fullName.compare( "exit" ) != 0 || index == capacity );
 
    
    for ( int i = 0; catalog[ i ]->empty() != true; i++ )
    {
        if ( islower( ( catalog[ i ]->at( 0 ) ).at( 0 ) ) )
        {
            toupper( ( catalog[ i ]->at( 0 ) ).at( 0 ) );
        }
 
        if ( islower( ( catalog[ i ]->at( 1 ) ).at( 0 ) ) )
        {
            toupper( ( catalog[ i ]->at( 1 ) ).at( 0 ) );
        }
 
        cout << ( catalog[ i ]->at( 0 ) ).at( 0 ) << ". " << catalog[ i ]->at( 1 ) << endl;
    }
 
 
    for ( int i = 0; i < capacity; i++ )
    {
        delete catalog[ i ];
    }
 
 
    return 0;
}
Добавлено через 53 минуты
В 49 строчке исправить на:
C++
1
index != capacity
gray_fox
What a waste!
1447 / 1176 / 61
Регистрация: 21.04.2012
Сообщений: 2,463
Завершенные тесты: 3
12.12.2013, 03:20     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #9
Вроде так)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <sstream>
#include <string>
 
 
int main() {
   for (std::string line; std::getline(std::cin, line) && (line != "exit"); ) {
       std::istringstream iss(line);
       std::string forename, familyname;
 
       iss >> familyname >> forename;
       
       std::cout << forename[0] << ". " << familyname << std::endl;
    }
}
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
12.12.2013, 03:24     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #10
gray_fox, Offtop:
Доброй ночи!)
Слил меня просто
gray_fox
What a waste!
1447 / 1176 / 61
Регистрация: 21.04.2012
Сообщений: 2,463
Завершенные тесты: 3
12.12.2013, 03:45     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #11

Не по теме:

Цитата Сообщение от StackOverflow Посмотреть сообщение
Доброй ночи!)
Доброй)
Цитата Сообщение от StackOverflow Посмотреть сообщение
Слил меня просто
Да ладно...)



Добавлено через 7 минут

Не по теме:

Хорошо, извиняюсь, больше не буду вмешиваться...

StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
12.12.2013, 04:09     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #12
gray_fox, Offtop:
Да ладно, я всегда только рад что-нибудь новенькое узнать!) Сохранил твой вариант у себя)

P.S. Кстати, а как сделать, чтобы сообщение 'Не по теме' автоматически делалось, вот как у тебя. А то мне приходится вручную текст красить
Ram_SG
0 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 14
12.12.2013, 11:33     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #13
Цитата Сообщение от StackOverflow Посмотреть сообщение
Sabi_na,
если есть вопросы, спрашивай, на все отвечу.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//StackOverflow
//All rights reserved.
 
#include <iostream>
#include <vector>
#include <cctype>
using namespace std;
 
int main()
{
    const int capacity = 50;
    vector<string> * catalog[ capacity ];
    
    for ( int i = 0; i < capacity; i++ )
    {
        catalog[ i ] = new vector<string>;
        catalog[ i ]->reserve( 2 );
    }
 
    int index = 0;
    string fullName;
 
    do {
        getline( cin, fullName );
 
        string name;
        string surname;
        size_t position = fullName.find( ' ', 0 );
 
        while ( position != std::string::npos )
        {
            if ( position == 0 )
            {
                fullName.erase( fullName.begin() );
                position = fullName.find( ' ', 0 );
            }
            else
            {
                surname.assign( fullName, 0, position );
                name.assign( fullName, position + 1, fullName.length() - ( position + 1 ) );
                catalog[ index ]->push_back( name );
                catalog[ index ]->push_back( surname );
                position = std::string::npos;
            }
        }
        
        ++index;
 
    } while ( fullName.compare( "exit" ) != 0 || index == capacity );
 
    
    for ( int i = 0; catalog[ i ]->empty() != true; i++ )
    {
        if ( islower( ( catalog[ i ]->at( 0 ) ).at( 0 ) ) )
        {
            toupper( ( catalog[ i ]->at( 0 ) ).at( 0 ) );
        }
 
        if ( islower( ( catalog[ i ]->at( 1 ) ).at( 0 ) ) )
        {
            toupper( ( catalog[ i ]->at( 1 ) ).at( 0 ) );
        }
 
        cout << ( catalog[ i ]->at( 0 ) ).at( 0 ) << ". " << catalog[ i ]->at( 1 ) << endl;
    }
 
 
    for ( int i = 0; i < capacity; i++ )
    {
        delete catalog[ i ];
    }
 
 
    return 0;
}
Добавлено через 53 минуты
В 49 строчке исправить на:
C++
1
index != capacity
исправила я 49 строчку и не работает задача(
и почему в коде я не видела этой информации
Rudenok Sabina
Polishchuk Tanya
Kharchenko Julia
Tymoshenko Dasha

мне же должно выводить И. Фамилия.

а в этом коде что ты написал я вообще не могу ничего понять, я тебя прошу только одно сделай так что б все работало)
Sabi_na
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 20
12.12.2013, 11:43  [ТС]     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #14
ааа блин, просила друга в личку написать так как у меня ЛС еще закрытие, вообщем прости, но вся суть там изложена)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 15:34     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия"
Еще ссылки по теме:
C++ Unicode, UTF-8 и ANSI в одном консольном приложении. Можно ли "на лету" конвертировать массив строк?
что дальше? (программа вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими) C++
Есть ли в структуре человек, чья фамилия начинается на букву "B". Найти ошибку C++
C++ Определить, имеется ли в заданном списке фамилия, начинающаяся с буквы "А" и состоящая из 6 букв
Символьный массив: проверить, чтобы после каждого вхождения "1" шло парное вхождение "0" C++

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

Или воспользуйтесь поиском по форуму:
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
12.12.2013, 15:34     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия" #15
Sabi_na, всё работает прекрасно. А тестовую информацию вы уже сами вводите. Если не работает, то пишите сюда сообщения компилятора, на какие ошибки он ссылается. Повторюсь, перепроверил, всё работает как часы.
Yandex
Объявления
12.12.2013, 15:34     Программа должна возвращать новый массив, состоящий из строк вида "И. Фамилия"
Ответ Создать тему
Опции темы

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