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

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

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

Студворк — интернет-сервис помощи студентам
Доброго вечера.
Пытаюсь написать программу выводящую из тхт. фаила все предложения начинающиеся с вводимой буквы.
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2011, 20:18
Ответы с готовыми решениями:

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

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

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

11
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 20:21
Цитата Сообщение от 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  [ТС]
По моему размер русской буквы (заглавной) равен 2.потому такая проверка,
Как же организовать правильную проверку?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 20:36
Цитата Сообщение от scofielcl Посмотреть сообщение
По моему размер русской буквы (заглавной) равен 2
Какой размер? (он одинаков, если считать в байтах, это символ)
strlen (char *str); - возвращает длину строки.
0
5 / 5 / 1
Регистрация: 30.07.2011
Сообщений: 257
17.11.2011, 20:39
scofielcl, что вы делаете? Как заглавная буква читается как слово длиной 2??? Чем заглавная буква отличается от обычной что у неё длина больше? Используйте просто символ. Можно использовать библиотечную функцию на проверку заглавности или же просто создать массив заглавных букв и там проверять.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 20:43
Цитата Сообщение от AvengerAlive Посмотреть сообщение
Можно использовать библиотечную функцию на проверку заглавности или же просто создать массив заглавных букв и там проверять.
Просто
C
1
 if ( (c>=65) && (c<=90) )
0
4 / 4 / 3
Регистрация: 11.09.2011
Сообщений: 146
17.11.2011, 20:44  [ТС]
Рабочий код,но предложение выводиться без знака на конце ,для 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
scofielcl, используйте стандартный GetWord, так быстрее будет...
0
4 / 4 / 3
Регистрация: 11.09.2011
Сообщений: 146
17.11.2011, 21:02  [ТС]
Сегодня мне не разобрать что такое getwordю
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.11.2011, 21: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  [ТС]
Не понима. как это связано ? Нужно вывести символ ,который после 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
Цитата Сообщение от scofielcl Посмотреть сообщение
к тому же сhar c ,как правильно оформить его задание ,чтоб strstr работала с ним.
C
1
2
char *cc="!";
strstr (VashaStroka,cc);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2011, 22:00
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Перейдите по ссылке:. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru