Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Нахождение слов определенной длины в тексте - C++

12.01.2013, 14:11. Просмотров 299. Ответов 1
Метки нет (Все метки)

Добрый день, столкнулся с проблемой следующего характера. Нужно выписать из текста все слова длины 5. Не долго думая, я написал такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
#include <string>
using namespace std;
fstream cin("input.txt");
ofstream cout("output.txt");
int main(){
    string s,s1;
    while(getline(cin,s))
        s1+=s;
    int count=0;    
    for(int i=3;i<s1.size();i++){
        if(s1[i-3]==' ' and s1[i+3]==' ')
            cout<<s1[i-2]<<s1[i-1]<<s1[i]<<s1[i+1]<<s1[i+2]<<endl;
    }
}
Но сразу понял свою ошибку. Выводились так же слова вида ****?, где ? любой знак препинания. И с несколькими пробелами впереди или по середина, например "Он до". Можно ли исправить данную проблему, напрямую не указывая, что каждый символ не должен быть пробелом или знаком препинания? Если нет, то как реализовать это наиболее эффективно?

Добавлено через 13 минут
Проблема решена следующим способом:
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
#include <fstream>
#include <string>
using namespace std;
fstream cin("input.txt");
ofstream cout("output.txt");
bool check(char g){
    if(g!=' ' and g!=',' and g!='.' and g!=';' and g!='-' and g!=':' and g!='?' 
    and g!='!' and g!='"')
        return true;
    else 
        return false;   
}
int main(){
    string s,s1;
    while(getline(cin,s))
        s1+=s;
    int count=0;    
    for(int i=3;i<s1.size();i++){
        if(s1[i-3]==' ' and s1[i+3]==' '){
            string f;
            bool m=true;
            for(int j=i-2;j<=i+2;j++){
                f+=s1[j];
                if(!check(s1[j]))
                    m=false;
            }
            if(m)
                cout<<f<<endl;
                
        }
        
            
    }
}
Но всё равно интересно, можно ли решить проще?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2013, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение слов определенной длины в тексте (C++):

Укоротить строку до определенной длины - C++
Здравствуйте. Не могли бы подсказать как можно укоротить строчку до определенной длины??

Заполнить массив нулями до определенной длины - C++
Всем доброго времени суток. Не получается дополнить массив типа wchar_t нулями до определенной длины Допустим переменная buff содержит...

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

Дан список слов различной длины. Составить программу упорядочения списка слов: По их длине; По алфавиту - C++
Очень срочно!!!!! Дан список слов различной длины. Составить программу упорядочения списка слов: По их длине; По алфавиту.

Как вывести на экран строку определенной длины - C++
есть вот такой код printf(&quot;%.15s: tick = %lld\n&quot;, items.name, items._unsec.tick); как сделать аналог чтобы печатались только первые...

Вывести слово определенной длины и длину слова в скобках - C++
1. Вывести Треугольник ABCD...Z BCD...Z CD...Z ...

1
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
12.01.2013, 14:46 #2
Конечно можно используя функцию strtok.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2013, 14:46
Привет! Вот еще темы с ответами:

Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? - C++
Здравствуйте, мне вот задание дали. Подскажите алгоритм решения, а то я не очень с этим разбираюсь. Задача: Дан файл, содержащий текст....

Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? - C++
Дан файл, содержащий текст. Сколько слов в тексте? Сколько цифр в тексте? Помогите пожалуйста

Строка - количество слов с определенной буквой - C++
Всем привет! Имеется такая задачка: Дана строка, состоящая из 8 слов, разделенных 1 пробелом. Определить кол-во слов, в которых буква...

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


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

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

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