Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4 / 4 / 3
Регистрация: 11.09.2011
Сообщений: 146
1

Работа со строками,поиск предложений.

17.11.2011, 20:18. Показов 1013. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго вечера.
Пытаюсь написать программу выводящую из тхт. фаила все предложения начинающиеся с вводимой буквы.
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
#include <iostream>
#include <string.h>
#include <fstream>
#include <stdio.h>
using namespace std;
 
int main ()
{
    const int len = 81;
    char word[len],line[len];
    char delims[]=".?!";
    int s;//длина строки
    bool flab=false;
    ifstream fin("text.txt");
    if(!fin) {cout<<"error";return 1;}
    
    cout <<"Вводим букву с которой начнем искать слово,заглавную буквуВ: ";
    cin >> word;
    s=strlen(word);
    cout<<"Длина строки=="<< s<<endl;
    if(strlen(word)!= 2){cout<<" Буква не заглавная! "<<endl;}
    char *token;
    while (fin.getline(line,len)){
        token=strtok(line,delims);
        while (token != NULL){
            if(!strstr(token,word)) {flab=true;cout<<" "<< line;}
            token=strtok(NULL,delims);
        }
    }
    if (flab=false){cout<<" Нет таковых";}
 
}
Работа кода не корректна.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2011, 20:18
Ответы с готовыми решениями:

Работа со строками (подсчитать количество предложений)
в введенном с клавиатуры тексте подсчитать количество предложений(конец предложения обозначается ....

Работа со строками, поиск, запись
Дорогие друзья, пишу программу. При написании возникли проблемы, а точнее столь слабые познания в...

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

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

11
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 20:21 2
Цитата Сообщение от scofielcl Посмотреть сообщение
if(strlen(word)!= 2){cout<<" Буква не заглавная! "<<endl;}
Почему?

Добавлено через 33 секунды
Цитата Сообщение от scofielcl Посмотреть сообщение
cout <<"Вводим букву с которой начнем искать слово,заглавную буквуВ: ";
* * cin >> word;
так буква это просто
C++
1
char c;
0
4 / 4 / 3
Регистрация: 11.09.2011
Сообщений: 146
17.11.2011, 20:33  [ТС] 3
По моему размер русской буквы (заглавной) равен 2.потому такая проверка,
Как же организовать правильную проверку?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 20:36 4
Цитата Сообщение от scofielcl Посмотреть сообщение
По моему размер русской буквы (заглавной) равен 2
Какой размер? (он одинаков, если считать в байтах, это символ)
strlen (char *str); - возвращает длину строки.
0
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257
17.11.2011, 20:39 5
scofielcl, что вы делаете? Как заглавная буква читается как слово длиной 2??? Чем заглавная буква отличается от обычной что у неё длина больше? Используйте просто символ. Можно использовать библиотечную функцию на проверку заглавности или же просто создать массив заглавных букв и там проверять.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 20:43 6
Цитата Сообщение от AvengerAlive Посмотреть сообщение
Можно использовать библиотечную функцию на проверку заглавности или же просто создать массив заглавных букв и там проверять.
Просто
C
1
 if ( (c>=65) && (c<=90) )
0
4 / 4 / 3
Регистрация: 11.09.2011
Сообщений: 146
17.11.2011, 20:44  [ТС] 7
Рабочий код,но предложение выводиться без знака на конце ,для string я бы вывел последний символ предложения (. ? ! ) через at ,как сделать таковое в char.
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.h>
#include <fstream>
using namespace std;
 
int main ()
{
    const int len = 81;
    char word[len],line[len];
    char delims[]=".?!";
    int s;//длина строки
    bool flab=false;
    ifstream fin("text.txt");
    if(!fin) {cout<<"error";return 1;}
    
    cout <<"Вводим букву с которой начнем искать слово,заглавную буквуВ: ";
    cin >> word;
    s=strlen(word);
 
    char *token;
    while (fin.getline(line,len)){
        token=strtok(line,delims);
        while (token != NULL){
            if(!strstr(token,word)) {flab=true;cout<<" "<< line;}
            token=strtok(NULL,delims);
        }
    }
    if (flab==false){cout<<" Нет таковых";}
 
}
0
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257
17.11.2011, 20:53 8
scofielcl, используйте стандартный GetWord, так быстрее будет...
0
4 / 4 / 3
Регистрация: 11.09.2011
Сообщений: 146
17.11.2011, 21:02  [ТС] 9
Сегодня мне не разобрать что такое getwordю
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 21:10 10
Цитата Сообщение от scofielcl Посмотреть сообщение
как сделать таковое в char
первый способ
C
1
2
char c='!';
pritntf ("%c",c);
второй способ
C
1
printf ("!");
Добавлено через 4 минуты
третий способ
C
1
2
    char *cc="!";
    printf ("%c",*cc);
1
4 / 4 / 3
Регистрация: 11.09.2011
Сообщений: 146
17.11.2011, 21:21  [ТС] 11
Не понима. как это связано ? Нужно вывести символ ,который после cтроки token ,там или . или ? или ! .
к тому же сhar c ,как правильно оформить его задание ,чтоб strstr работала с ним.
C++
1
2
main.cpp:30: error: invalid conversion from ‘char’ to ‘const char*’
main.cpp:30: error:   initializing argument 2 of ‘char* strstr(char*, const char*)
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 22:00 12
Цитата Сообщение от scofielcl Посмотреть сообщение
к тому же сhar c ,как правильно оформить его задание ,чтоб strstr работала с ним.
C
1
2
char *cc="!";
strstr (VashaStroka,cc);
1
17.11.2011, 22:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2011, 22:00
Помогаю со студенческими работами здесь

Поиск в текстовом файле предложений, соответствующих маске
Задано маску, которая состоит из набора целых чисел. Каждое число определяет кол-во букв в...

Поиск английских гласных в указанном количестве предложений
Здравствуйте. Дано количество предложений i и сами предложения. Требуется в каждом найти количество...

Работа со строками
Всем привет. Есть такой код void makeStr() { std::string testStr = &quot;Take...

Работа со строками.
Лишние пробелы. Дана строка, состоящая из слов, разделенных пробелами. Напишите программу,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru