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

Работа с текстом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в выводе массива -858993460 http://www.cyberforum.ru/cpp-beginners/thread1758419.html
#include<iostream> #include<stdio.h> #define n 4 int main() { setlocale(LC_ALL, "Russian"); using namespace std; int a,j,q, i, k, d, b; { k = 0; d = 0; for (i = 0; i < n; i++) {
C++ Как переписать DFSR в DFS? Есть класс который считывает ребра (в формате (2, 4)) и решает задачу сильно связных компонент. Все отлично работает. Но когда ребер не 19, а например 10000 происходит переполнение стека из-за... http://www.cyberforum.ru/cpp-beginners/thread1758416.html
C++ Несколько уточнений по С++
Привет, читаю тут Липмана и у меня возник вопрос небольшой по поводу constexpr Там сказано, что constexpr указатели могут быть инициализированны nullptr или литером 0. Мы так же можем указывать...
C++ Реализовать игру с обработкой случайных чисел
За один ход ЭВМ генерирует случайное целое число в интервале , Перед этим участники заказывают одну комбинацию из следующих возможных (стараясь угадать число или интервал, в который число попадает): ...
C++ Fopen и fgets, не понимаю как с ними оперировать http://www.cyberforum.ru/cpp-beginners/thread1758382.html
Получаю такую штуку как sentence из командной строки в виде C:\folder\name.txt, и хочу её вставить в fopen. Обычно пишут fopen("C:\ddd\sw.txt","") в виде текста, я про ссылку на файл. Я же хочу...
C++ Вывести отдельно все положительные числа в матрице #include "stdafx.h" #include<stdio.h> #include<conio.h> #include<stdlib.h> #include "iostream" #include "iomanip" void main() { подробнее

Показать сообщение отдельно
Novichok2016
0 / 0 / 0
Регистрация: 02.06.2016
Сообщений: 26

Работа с текстом - C++

09.06.2016, 00:39. Просмотров 384. Ответов 2
Метки (Все метки)

Помогите, пожалуйста, исправить программу... Задание такое: Задан текст. По правилам пунктуации пробел может стоять после, а не перед каждым из следующих знаков: . , ; : ! ?. Проверить данный текст на соблюдение этих правил и при необходимости исправить.

Т.е. нужно:
1) оставить пробел между словами в предложении
2) если пробел стоит перед знаками . , ; : ! ? - удалить его
3) если перед знаками . , ; : ! ? нет пробела - добавить его

Программа работает,но неправильно - удаляет абсолютно все пробелы.

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
#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include <iostream>
#include <string>
 
using namespace std;
 
string posle(".,;:!?)]}"); //по условию ЭТО после 
string pered = ("([{"); // ЭТО перед 
string probel = ("/s"); //пробел, табуляция, перевод строки 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    string st = "Hbg vjg dh.Sljh fhg:   hedgv b.  Ffjns shja.";
    cout << endl << "Текст: " << st << endl;
    cout << endl << "Проверка текста на соблюдение пунктационных правил... "  << endl;
    for (int i = st.length() - 2; i > 0; --i)
        if (st[i] == ' ' && (pered.find(st[i - 1] != string::npos) || posle.find(st[i + 1] != string::npos)))
            st.erase(i, 1);
    cout << endl << "Исправленный текст: " << st << endl;
    getchar();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru