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

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

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

Вывести на экран первое и второе слово - C++

12.06.2012, 15:04. Просмотров 648. Ответов 9
Метки нет (Все метки)

помогите пожалуйста.

В строке удалить символ двоеточие ( и подсчитать количество удалений. Вывести на экран первое и второе слово.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2012, 15:04     Вывести на экран первое и второе слово
Посмотрите здесь:

Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово? - C++
Даны два слова. Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово?

Вывести на экран второе слово введённой пользователем строки - C++
Вводится строка произвольного текста. Вывести на экран второе слово (слова разделены пробелами).

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

Даны два слова.Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово - C++
Даны два слова.Верно ли, что первое слово начинается на ту же букву, на которую заканчивается второе слово.

Если первое число окажется кратным 5 или второе число будет нечетным, то вывести на экран сумму их модулей - C++
4. Даны два числа N и М. Если первое число окажется кратным 5 или второе число будет нечетным, то вывести на экран сумму модулей заданных...

Дано предложение. Нужно вывести на экран только первое слово предложения - C++
Дано предложение. Нужно вывести на экран только первое слово предложения

Вывести на экран самое короткое слово заданной строки (если их несколько, то первое) - C++
Написать функцию, которая выводит на экран самое короткое слово. Если их несколько, то первое. Ребят, помогите, пожалуйста, написать...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
12.06.2012, 17:29     Вывести на экран первое и второе слово #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
33
34
35
36
37
38
39
#include <iostream>
#include <string>
using namespace std;
 
int main() 
{ 
    string str = "Jose: Mourinho: entrenador: of Real Madrid"; 
    int n = 0; // счётчик слов
    int count = 0; // счётчик символов двоеточия 
    unsigned int i;
 
    for ( i = 0; i < str.length(); i++) 
    { 
        if(str[i] == ':') 
        { 
            str.erase(i,1);  // удаляем символы из строки
            --i; 
            count++; 
        } 
    } 
 
    cout << str << endl; 
    cout << "Simvolov : v stroke " << count << endl; 
    cout << endl;
 
    for ( i = 0; i < str.length(); i++)  
    {
        if(str[i]==' ')  
        n++;               // считаем слова
        
        cout << str[i];
 
        if ( n == 2) 
            break; 
    }  
    cout << endl;
 
    return 0;
}
Vityxa
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 12
12.06.2012, 17:33  [ТС]     Вывести на экран первое и второе слово #3
Спасибо!))
-=ЮрА=-
Заблокирован
Автор FAQ
12.06.2012, 17:46     Вывести на экран первое и второе слово #4
Цитата Сообщение от Vityxa Посмотреть сообщение
помогите пожалуйста.
В строке удалить символ двоеточие ( и подсчитать количество удалений. Вывести на экран первое и второе слово.
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
#include <cstdio>
#include <iostream>
using namespace std;
 
int main()
{
    char text[1024] = {0};//Буффер для вводимого текста
    char *sub = NULL;//указатель на подстроку в тексте
    char firstWord [32] = {0};//Буффер для 1-го слова
    char secondWord[32] = {0};//Буффер для 2-го слова
    int nDel = 0;//Будет сожержать число удалений двоеточий
    cout<<"Enter text (less than 1024 chars)\n";
    cin.getline(text,1024);
    //Удаление двоеточий
    while(sub = strchr(text,':'))
    {
        if(sub + 1)//если двоеточие не последний символ
        //Последовательно вытираем их
            strcpy(&text[strlen(text) - strlen(sub)],sub + 1);
        text[strlen(text) - 1] = '\0';//обрезаем стркоу на 1 знак
        nDel++;
    }
    cout<<"Text after removing symbols \':\' \n"<<text<<endl;
    sscanf(text,"%s %s ",firstWord, secondWord);
    cout<<"1-st word : "<<firstWord<<endl;
    cout<<"2-nd word : "<<secondWord<<endl;
    system("pause");
    return 0;
}
Миниатюры
Вывести на экран первое и второе слово  
-=ЮрА=-
Заблокирован
Автор FAQ
12.06.2012, 17:48     Вывести на экран первое и второе слово #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
nDel++;
забыл сделать вывод числа удалений, вот так код модернизируй
cout<<nDel<<" was removed from text\n";
cout<<"Text after removing symbols \':\' \n"<<text<<endl;
Vityxa
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 12
12.06.2012, 18:10  [ТС]     Вывести на экран первое и второе слово #6
спасибо большое!))
dyosick
61 / 61 / 6
Регистрация: 25.08.2008
Сообщений: 178
12.06.2012, 19:37     Вывести на экран первое и второе слово #7
Ну еще и третий, чтоб навернека. Кстати, символ-разделитель у меня всё, кроме цифр и букв (т.е. словом в моем варианте может быть даже "test12345")
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
#include <iostream>
#include <string>
#include <cctype>
 
#define DEBUG 0
 
#define NPOS std::string::npos
#define WORD_NUMBER 2
 
int main()
{
    unsigned short int word_count = 0;
    std::size_t del_count = 0;
    std::size_t word_start_pos = NPOS;
    std::string str = "::----   test:case::you:  must : delete-:all:colon";
 
    for (std::size_t cur_pos = 0; cur_pos < str.length();) {
        if (isalnum(str[cur_pos])) {
            if (word_count < WORD_NUMBER && word_start_pos == NPOS) {
#if DEBUG
                std::cout << "Found word start char[" << str[cur_pos] << "] at pos[" << cur_pos << "]" << std::endl;
#endif
                word_start_pos = cur_pos;
            }
            ++cur_pos;
        } else {
            if (word_count < WORD_NUMBER && word_start_pos != NPOS) {
                ++word_count;
                std::cout << "Word #" << word_count << ": " << str.substr(word_start_pos, cur_pos - word_start_pos) << std::endl;
                word_start_pos = NPOS;
            }
            if (str[cur_pos] == ':') {
                str.erase(cur_pos, 1);
                ++del_count;
            } else {
                ++cur_pos;
            }
        }
    }
 
    std::cout << "Deleted " << del_count << " colons" << std::endl;
    std::cout << "String after deleting colons: " << str << std::endl;
 
    return 0;
}
Vityxa
0 / 0 / 0
Регистрация: 12.06.2012
Сообщений: 12
12.06.2012, 20:00  [ТС]     Вывести на экран первое и второе слово #8
спасибо большое за помощь!))
-=ЮрА=-
12.06.2012, 22:05
  #9

Не по теме:

dyosick, лучше используй stringstream

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2012, 05:15     Вывести на экран первое и второе слово
Еще ссылки по теме:

поменять местами первое и второе слово в каждой строке - C++
ввести массив из 5 строк с клавиатуры,поменять местами первое и второе слово в каждой строке. помогите решить плиз

Ввести предложение. Поменять первое и второе слово местами - C++
Условие:Ввести предложение.Поменять первое и второе слово местами.Вывести результат на экран. как написать текст программы??

Определить объединение из двух полей. Первое поле - массив из четырех байт, второе - двойное слово - C++
Определить объединение из двух полей. Первое поле - массив из четырех байт, второе - двойное слово. Ввести случайное число в диапазоне от...

Определить объединение из двух полей. Первое поле – массив из четырех байт, второе – двойное слово - C++
Добрый вечер, есть задача с которой ну никак не удается справиться: Определить объединение из двух полей. Первое поле – массив из...

Вывести на экран слова начинающиеся с той же буквы, что и первое слово предложения. Напечатать строку после изъятия этих слов. - C++
Помогите, пожалуйста с программой: Вывести на экран слова начинающиеся с той же буквы, что и первое слово введенного предложения....


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
6991 / 4162 / 594
Регистрация: 29.11.2010
Сообщений: 11,040
13.06.2012, 05:15     Вывести на экран первое и второе слово #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <iterator>
#include <string>
 
int main()
{
    std::string str = "There: ar:e many varia::tions :on the punctuation and cas:ing o:f the phrase.::";
    std::cout<< "Before deleting: "<< str<< std::endl;
    str.erase(std::remove(str.begin(), str.end(), ':'), str.end() );
    std::cout<< "After deleting : "<< str<< std::endl;   
    std::size_t pos = str.find(' ', 0);
    if (pos == std::string::npos) { std::cout<< "There's only one word: "<< str; return 0; } 
    std::copy(str.begin(), str.begin() + pos++, std::ostream_iterator<char> (std::cout, "") );
    std::cout<< " ";     
    std::copy(str.begin() + pos, str.begin() + str.find(' ', pos), std::ostream_iterator<char> (std::cout, "") );     
    return 0;
}
http://liveworkspace.org/code/53ef0e...d6725d9da69ec3
http://liveworkspace.org/code/75eccb...2ac77254c9d626 Когда одно слово

Как бы кстати вот этот момент:
C++
1
std::copy(str.begin(), str.begin() + pos++, std::ostream_iterator<char> (std::cout, "") );
покрасивее оформить? А то у меня вкрадываются сомнения, что я извращенец
Yandex
Объявления
13.06.2012, 05:15     Вывести на экран первое и второе слово
Ответ Создать тему
Опции темы

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