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

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

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

Найти символ в тексте - C++

19.05.2012, 02:26. Просмотров 821. Ответов 6
Метки нет (Все метки)

уже битый час сижу и ломаю голову над задачей...
весь интернет перерыл в поисках ответа...
в общем нужно узнать сколько раз встречается буква "а" в тексте...
использовал и count() и find()
ничего не получается читал мануалы по векторам но все равно к успеху не привело...
что вообще я не правильно делаю ? и обьясните если не трудно как пользоваться вектором

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
#include "stdafx.h"
#include <string.h>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace  std;
 
char massiv[];
string text1("Тарнавский Дмитрий Алексеевич");
int length,number_of_a;
int main()
{
    setlocale(LC_ALL,"Russian");
    //---------------------------------------
    cout<<"Исходный текст = "<<text1<<"\n";
    length = text1.length();
    cout<<"Длина текста включая пробелы = "<<length<<"\n";
    //---------------------------------------
    for(string::iterator it = text1.begin(); it < text1.end(); ++it)
    {
        if(*it == ' ') text1.erase(it); 
    }
    length = text1.length(); 
    cout<<"\nДлина текста без пробелов = "<<length<<"\n";
    //---------------------------------------
    vector<string> text1(text1.begin(),text1.end());
    vector<int>::iterator number_of_a;
    number_of_a.operator==(find(text1.begin(),text1.end(), 'a');
    ++number_of_a;
    cout<<"\nКоличество букв -а- в тексте = "<<length<<"\n";
}
Место с ошибкой:
C++
1
2
3
4
5
6
 //---------------------------------------
    vector<string> text1(text1.begin(),text1.end());
    vector<int>::iterator number_of_a;
    number_of_a.operator==(find(text1.begin(),text1.end(), 'a');
    ++number_of_a;
    cout<<"\nКоличество букв -а- в тексте = "<<length<<"\n";
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2012, 02:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти символ в тексте (C++):

Найти самый часто встречающийся символ в тексте - C++
я &quot;сделал&quot; программу шифратор и дешифратор текста по методу цезаря, но теперь мне надо сделать так чтобы программа показывала самый...

В тексте удалить указанный символ везде, где он встречается. Программа не позволяет ввести символ - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;cstdlib&gt; using namespace std; int main() { setlocale(0,&quot;Russian&quot;); char s; ...

Заменить в тексте символ, который вводится с клавиатуры на символ * - C++
Помогите решить в Borland c++ Если можно еще блок-схему Задан тест. Заменить в этом тексте символ, который вводится с лавиатуры на...

Сколько раз встречается символ в тексте - C++
Сделайте еще одну задачу на С плз вот она: Дан текст. Сколько раз в нем встречается символ &quot;+&quot; и сколько раз символ &quot;*&quot;? заранее...

Заменить один символ в тексте двумя - C++
как заменить один символ в тексте двумя? Например вместо А вставить !А #include &lt;stdio.h&gt; void main() { FILE *File1, *File2;...

Определить символ, встречающийся в тексте с максимальной частотой - C++
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Нужно определить символ, встречающийся в тексте с максимальной ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
19.05.2012, 02:38 #2
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm> 
#include <string> 
 
int main()
{
    setlocale(LC_ALL,"Russian");
   std::string s  = "Тарнавский Дмитрий Алексеевич";
   std::cout << "\nКоличество букв -а- в тексте = " << std::count(s.begin(), s.end(), 'а');
   return 0;
}
1
smalldragon
0 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 10
19.05.2012, 04:05  [ТС] #3
Чтобы не создавать новую тему спрошу здесь же.
все равно вопрос к этой же теме относится.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cout<<"\nРешаем задачу рассматривая строку как строковый массив\n";
    l = strlen(string1);
    cout<<"Количество символов без учета ноль строки = "<< l<<"\n";
    if(' ' == string1[l-1])
        string1[l-1] = 0;
        int i = 0, k=0;   
        for( int j=0; j<l; j++ )
        {
          if( string1[j] == ' ' )
          {
        i++;
        for (k=j; k<l-1; k++)
                    string1[k] = string1[k+1];
        j--;
 
          }
        }
        for (;i>0;i--)
            string1[l-i]=' ';
        l = strlen(string1);
        cout <<"Количество символов без пробелов = "<<l <<"\n";
теперь проблема с выводом....
если писать string1 то выводит текст без пробелов.
если использовать strlen к string1 то остается то же кол-во символов как и с пробелами...
в чем моя ошибка ?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
19.05.2012, 04:40 #4
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <clocale>
 
int main()
{
   setlocale(LC_ALL,"Russian");
   char* s  = "Тарнавский Дмитрий Алексеевич";
   std::cout<< s;
   return 0;
}
0
smalldragon
0 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 10
19.05.2012, 04:47  [ТС] #5
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <clocale>
 
int main()
{
   setlocale(LC_ALL,"Russian");
   char* s  = "Тарнавский Дмитрий Алексеевич";
   std::cout<< s;
   return 0;
}
не совсем понял что это даст....
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
19.05.2012, 04:48 #6
Цитата Сообщение от smalldragon Посмотреть сообщение
не совсем понял что это даст....
Я так понял, у вас были проблемы с выводом символьного массива. Тяжело судить, когда тебе предоставляют обрывок кода.
0
smalldragon
0 / 0 / 0
Регистрация: 02.05.2012
Сообщений: 10
19.05.2012, 04:53  [ТС] #7
Цитата Сообщение от MrGluck Посмотреть сообщение
Я так понял, у вас были проблемы с выводом символьного массива. Тяжело судить, когда тебе предоставляют обрывок кода.
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "stdafx.h"
#include <string.h>
#include <algorithm>
#include <ctype.h>
#include <iostream>
using namespace  std;
 
char string1[] = "Тарнавский Дмитрий Алексеевич";
char token[];
string text1 = "Тарнавский Дмитрий Алексеевич";
int length,number_of_a,l,g,t,curlen,maxlen,index,i;
int main()
{
    setlocale(LC_ALL,"Russian");
    //---------------------------------------
    // строка
    cout<<"Решаем задачу используя библиотеку string.h\n";
    cout<<"Исходный текст = Тарнавский Дмитрий Алексеевич\n";
    length = text1.length();
    cout<<"Длина текста включая пробелы = "<<length<<"\n";
    //---------------------------------------
    for(string::iterator it = text1.begin(); it < text1.end(); ++it)
    {
        if(*it == ' ') text1.erase(it); 
    }
    length = text1.length(); 
    cout<<"Длина текста без пробелов = "<<length<<"\n";
    //---------------------------------------
    cout<<"Количество букв -а- в тексте = "<<count(text1.begin(),text1.end(), 'а')<<"\n";
 
    // строковый массив
    cout<<"---------------------------------------------------------";
    cout<<"\nРешаем задачу рассматривая строку как строковый массив\n";
    l = strlen(string1);
    cout<<"Количество символов без учета ноль строки = "<< l<<"\n";
    if(' ' == string1[l-1])
        string1[l-1] = 0;
        int i = 0, k=0;   
        for( int j=0; j<l; j++ )
        {
          if( string1[j] == ' ' )
          {
        i++;
        for (k=j; k<l-1; k++)
                    string1[k] = string1[k+1];
        j--;
 
          }
        }
        for (;i>0;i--)
            string1[l-i]=' ';
        l = strlen(string1);
        cout <<"Количество символов без пробелов = "<<l <<"\n";
        //----------------------------------------------------
        // длина слова
        cout<<"-------------------------------------------------------\n";
    
}
если не сложно сможете помочь как определить самое длинное слово ?
в сети есть пару примеров но они слишком сложны для пониманию и требую слишком долгого разжевывания...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2012, 04:53
Привет! Вот еще темы с ответами:

Подсчёт сколько раз в тексте появляется символ - C++
Суть такая. Есть файл с алфавитом. Есть файл с текстом. С начала я делаю индексный массив, он хранит указатели на структура типа Letter. В...

В заданном тексте заменить все цифры на заданный символ - C++
В заданном тексте заменить все цифры на заданный символ (язык С++)

В тексте удалить указанный символ везде, где он встречается - C++
Ввести текст произвольного содержания в память ПЭВМ. Вывести на экран. Записать текст в файл. После записи текста в файл информация...

Определить сколько раз заданный символ встречается во веденном тексте - C++
Разработать программу, которая вводит произвольный текст и символ и подсчитывает, сколько раз этот символ встречается в веденном тексте.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.05.2012, 04:53
Ответ Создать тему
Опции темы

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