0 / 1 / 4
Регистрация: 20.10.2013
Сообщений: 270
1

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

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

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
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
28.03.2014, 09:45
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2014, 09:45
Ответы с готовыми решениями:

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

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

Удалить из строки все знаки препинания
Пусть с клавиатуры вводятся строка и символ. Если введённый символ является знаком препинания, то удалить из строки все знаки препинания и...

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

Добавлено через 19 часов 48 минут
Подниму!
0
5499 / 4894 / 831
Регистрация: 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2014, 16:51
Помогаю со студенческими работами здесь

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

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

Удалить все знаки препинания в строке
Получил задания: 1. Вывести сообщение &quot;МОЖНО&quot;, если из букв введённой строки X можно составить введенную строку Y, при условии, что...

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

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


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Как в jQuery проверить, что элемент скрыт
hw_wired 10.02.2025
jQuery предоставляет несколько эффективных способов определить, скрыт элемент или отображается на странице. Самый простой метод использует специальные селекторы :hidden и :visible. Селектор :hidden. . .
Как проверить (check out) ветку Git в удаленном репозитории
hw_wired 10.02.2025
Проверка удаленной ветки в Git требует понимания нескольких базовых концепций и точного выполнения определенной последовательности действий. Для начала необходимо получить актуальную информацию о. . .
chucknorris в HTML и другие обозначения цветов
hw_wired 10.02.2025
HTML, как основной язык разметки веб-страниц, прошел длинный путь развития в плане работы с цветами. На заре развития веб-технологий разработчики могли использовать только базовый набор из 16. . .
Стек и куча: отличия и назначение
hw_wired 10.02.2025
Управление памятью - ключевой элемент работы любой программы. В современных языках программирования память делится на две основные области: стек и кучу. Каждая из них обладает уникальными. . .
Комментарии в JSON
hw_wired 10.02.2025
JSON - текстовый формат обмена данными, построенный на основе синтаксиса JavaScript. Этот формат отличается простотой, читаемостью и широкой поддержкой во всех современных языках программирования. . . .
Перезаписываем локальные файлы с помощью git pull
hw_wired 10.02.2025
Git pull - незаменимая команда для синхронизации локального репозитория с удаленным. При работе над проектом в команде разработчиков часто возникает необходимость получить актуальные изменения,. . .
Оператор --> в C++
hw_wired 10.02.2025
Оператор --> (называемый "spaceship operator" или оператор космического корабля) - важное нововведение в стандарте C++20, упрощающее реализацию операций сравнения в пользовательских типах данных. . . .
Отмена git add до коммита
hw_wired 10.02.2025
Git предлагает несколько методов для отмены индексации файлов перед созданием коммита. Разработчики часто сталкиваются с ситуацией, когда нужно убрать файлы из индекса, не теряя внесенные изменения в. . .
Типы MIME в JSON: что и когда использовать в REST API
hw_wired 10.02.2025
MIME-типы играют ключевую роль в современных веб-приложениях, особенно в контексте REST API и микросервисной архитектуры. Они определяют формат передаваемых данных между клиентом и сервером, что. . .
Переименование локальной ветки Git
hw_wired 10.02.2025
Git предлагает систему управления версиями, где ветки играют ключевую роль в организации разработки. Ветки позволяют изолировать изменения кода, экспериментировать с новыми функциями и поддерживать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru