Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 28.01.2010
Сообщений: 3
1

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

24.03.2010, 21:42. Показов 3453. Ответов 5
Метки нет (Все метки)

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2010, 21:42
Ответы с готовыми решениями:

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три...

С++ Дана строка содержащая текст заканчивающийся точкой. Вывести на экран слова содержащие 3 буквы
ребята, буду очень благодарна за программу! и если не сложно, добавьте комментарии. но можно и...

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.
Обработка числовых массивов 1.Дан массив X(N). Переписать в массив Y подряд положительные и в...

5
31 / 30 / 19
Регистрация: 18.01.2010
Сообщений: 123
24.03.2010, 23:19 2
строка из файла или ее нужно вводить.
0
0 / 0 / 0
Регистрация: 28.01.2010
Сообщений: 3
26.03.2010, 22:54  [ТС] 3
вводим
0
14 / 14 / 3
Регистрация: 12.07.2009
Сообщений: 114
27.03.2010, 00:05 4
Так тут просто, через strtok, а потом длину смотреть через strlen...
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11031 / 6983 / 1651
Регистрация: 25.07.2009
Сообщений: 12,727
27.03.2010, 05:42 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 <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <iterator>
 
int main(){
    const int CHAR_LIMIT = 3;
    std::string buf, tmp;
    std::cout << "Write some sentence: ";
    std::getline(std::cin, buf);
    if ( buf.empty() ){
        std::cerr << "Empty strings not allowed!" << std::endl;
        return 1;
    }
    size_t pos;
    if ( ( pos = buf.find_first_of('.') ) == std::string::npos ){
        std::cerr << "Sentence must be ended with a point!" << std::endl;
        return 1;
    }
    if ( pos < buf.length() - 1 )
        buf.erase(pos + 1);
 
    std::vector<std::string> vec;
    std::istringstream ist(buf);
    while ( ist >> tmp ){
        if ( ( pos = tmp.find_last_not_of(".,:;") ) != std::string:: npos ){
            if ( pos < tmp.length() - 1 )
                tmp.erase(pos + 1);
            if ( tmp.length() == CHAR_LIMIT )
                vec.push_back(tmp);
        }
    }
 
    if ( vec.empty() )
        std::cout << "No words with length of " << CHAR_LIMIT << " characters found!" << std::endl;
    else {
        std::cout << "Words with length of " << CHAR_LIMIT << " characters:" << std::endl;
        std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    }
 
    return 0;
}
Добавлено через 31 минуту
Вариант С (немного проще):
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 <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define CHAR_LIMIT 3
#define MAX_STR 256
#define SPCHARS " ,.\t"
 
int main(void){
    char buf[MAX_STR], *pBuf;
 
    printf("Write some sentence: ");
    if ( !fgets(buf, MAX_STR, stdin) ){
        fprintf(stderr, "Can't get sentence!\n");
        exit(1);
    }
    if ( ( pBuf = strchr(buf, '.') ) == NULL ){
        fprintf(stderr, "Sentence must be ended with a point!\n");
        exit(1);
    }
    *(++pBuf) = '\0';
 
    printf("Words with length of %d characters:\n", CHAR_LIMIT);
    for ( pBuf = strtok(buf, SPCHARS); pBuf != NULL; pBuf = strtok(NULL, SPCHARS) )
        if ( strlen(pBuf) == CHAR_LIMIT )
            printf("%s\n", pBuf);
 
    exit(0);
}
0
0 / 0 / 0
Регистрация: 28.01.2010
Сообщений: 3
28.03.2010, 16:14  [ТС] 6
спасибо огромное
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2010, 16:14

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три...

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три...

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

Дана строка содержащая текст заканчивающийся точкой. Вывести на экран слова содержащие 3 буквы
Дана строка содержащая текст заканчивающийся точкой. Вывести на экран слова содержащие 3 буквы. ...


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

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

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