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

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

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

Найти только определенные знаки препинания - C++

28.03.2014, 09:45. Просмотров 264. Ответов 4
Метки нет (Все метки)

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
#include <iostream>
#include <fstream>
#include <locale>
using namespace std;
 
int main()
{   
    setlocale (0, "");
    ifstream inp ("D://text.txt");
    char delims[]=".,;?!-:";
    if (!inp)
    {
        cout<<"Ошибка чтения файла!"<<endl;
        return 1;
    }
    char str [30][80];
    int k=0; //кол-во строк в файле
    int n=0; //кол-во знаков препинания
 
      while (!inp.eof())
    {
        inp.getline(str[k],79);
        for (int i=0; i<=80; i++)
        {
            for (int j=0; j<=10; j++)
        if (str[k][i]==delims[j])
            n++;
        }
        k++;
    }
    
    inp.close();
        cout<<"Количестов знаков препинания: "<<n<<endl;
    ofstream out("D//text.txt");
    out.close();
    system ("pause");
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
while (!inp.eof())
    {
        inp.getline(str[k],79);
        for (int i=0; i<=80; i++)
        {
            for (int j=0; j<=10; j++)
        if (str[k][i]==delims[j])
            n++;
        }
        k++;
    }
Условие считает все символы, а мне нужно чтобы считало только определенные.
И еще, объясните, пожалуйста, каждую строчку этого условия, и по возможности помогите упростить его
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2014, 09:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти только определенные знаки препинания (C++):

Знаки препинания в строке - C++
Подсчитать количество знаков препинания в строке.

Удалить знаки препинания из строки - C++
Помогите на с отфильтровать строку таким образом, чтобы вместо знаков появлялись пробелы. Напимер задано рпраппрапа.пр:пр,ророро ...

В текстовом файле подсчитать знаки препинания - C++
Вот мои наброски, но мне выводит кол-во всех знаков! #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main() {...

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

Вычеркните из строки все знаки препинания (с++) - C++
Здравствуйте, форумчане! Нужна помощь. Вычеркните из строки все знаки препинания Написать на с++

Удалить все знаки препинания и пробельные символы - C++
1. Даны строки, содержащие любые элементы алфавита языка С++. Удалить все знаки препинания и пробельные символы.

4
zss
Модератор
Эксперт С++
6486 / 6049 / 1987
Регистрация: 18.12.2011
Сообщений: 15,690
Завершенные тесты: 1
28.03.2014, 10:07 #2
Если имеется ввиду условие
Цитата Сообщение от VitekSR Посмотреть сообщение
if (str[k][i]==delims[j])
То оно считает именно определенные символы,
которые хранятся в массиве delims.
Другое дело, что они считаются все в одну переменную.
Если надо посчитать отдельно, то сделайте n массивом
и вместо n++ напишите n[j]++
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 245
28.03.2014, 10:49  [ТС] #3
Ошибка 1 error C2109: для индекса требуется массив или указатель c:\users\виктор\documents\visual studio 2010\projects\защита лабы 2(2семестр)\защита лабы 2(2семестр)\защита лабы2.cpp 27
0
VitekSR
0 / 1 / 0
Регистрация: 20.10.2013
Сообщений: 245
30.03.2014, 13:58  [ТС] #4
Подниму!

Добавлено через 19 часов 48 минут
Подниму!
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.03.2014, 16:51 #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
#include <iostream>
#include <fstream>
#include <locale>
using namespace std;
 
int main()
{   
    setlocale (0, "");
    ifstream inp ("text.txt");
    char delims[] = ".,;?!-:";
    if (!inp)
    {
        cout<<"Ошибка чтения файла!"<<endl;
        return 1;
    }
    char str [30][80];
    int k=0; //кол-во строк в файле
    int n=0; //кол-во знаков препинания
 
     while (inp.getline(str[k], 80))
    {
        
        for (int i = 0; i < strlen(str[k]); i++)
        {
            for (int j = 0; j < strlen(delims); j++)
                if (str[k][i] == delims[j])
                    n++;
        }
        k++;
    }
    
    inp.close();
    cout <<"Количестов строк: " << k << endl;
    cout <<"Количестов знаков препинания: " << n << endl;
 
    //ofstream out("D//text.txt");
    //out.close();
    
    system ("pause");
    return 0;
}
В файле:
"Myronchuk, - 1997: higher "
Tonenchuk_;1969 average.
Tselyudyna, 1999 pochatkavo!
1
Миниатюры
Найти только определенные знаки препинания  
30.03.2014, 16:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2014, 16:51
Привет! Вот еще темы с ответами:

Функция: удалить из строки все знаки препинания - C++
12. Написать функцию, которая удаляет из строки все знаки препинания. Заголовок функции: void deletePunct(char *s); Написать программу,...

Отзеркалить каждое слово в строке, не трогая знаки препинания - C++
Пример работы программы: Строка на вход: абв.йцуке кенг Результат: вба.екуцй гнек Ниже прикрепил свои наработки. Программа просто...

Функция getline(). Как исключить знаки препинания (символы)? - C++
Задача следующая: Из файла source.txt прочесть слово Отправить запрос в БД Получить перевод слова Записать в файл...

Строка: В тексте посчитать знаки препинания и вывести их количество - C++
1) &quot;Враг, что мудр и много знает, друга может быть ценней. Мудрость уважать пристало у врагов и у друзей.&quot; В тексте посчитать знаки...


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

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

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