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

Подсчитать количество вхождений в тексте каждого из символов массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.75
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
19.12.2012, 23:31     Подсчитать количество вхождений в тексте каждого из символов массива #1
Задан текст. Задано множество из n символов. Подсчитать количество вхождений в тексте каждого из символов массива

есть ли более рациональный путь решения чем через switch?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 23:31     Подсчитать количество вхождений в тексте каждого из символов массива
Посмотрите здесь:

C++ строки С++(После каждого символов '.' вставить два пробела, подсчитать, сколько раз пара символов 'C+' стоит перед символом 'D')
C++ Количество вхождений в тексте каждой буквы
C++ Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
C++ Дана строка символов. Подсчитать общее число вхождений символов
Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
19.12.2012, 23:34     Подсчитать количество вхождений в тексте каждого из символов массива #2
почему switch не подходит?!
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
19.12.2012, 23:35  [ТС]     Подсчитать количество вхождений в тексте каждого из символов массива #3
подходит, но там 80+ символов нужно вводить, плюс выдает ошибки..
Ichimaru
 Аватар для Ichimaru
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 22
19.12.2012, 23:40     Подсчитать количество вхождений в тексте каждого из символов массива #4
!!!!!
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
19.12.2012, 23:42     Подсчитать количество вхождений в тексте каждого из символов массива #5
C++
1
2
3
4
5
6
7
8
9
10
 string a="dskmcvskdnvksdnkvnsdvnsdlv";
string s="dn";//тут символы
int b[s.length()];
for(int i=0;i<s.length();i++){
   b[i]=0;
  for(int j=0;j<a.length();j++){
     if(a[j]==s[i]) b[i]++;
  }
  cout<<b[i]<<" ";
}
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
19.12.2012, 23:50  [ТС]     Подсчитать количество вхождений в тексте каждого из символов массива #6
ArtMaster, а еще такой вопрос.. как связать прогу с текстовым файлом? т.к. текст задан в файле..
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
20.12.2012, 00:05     Подсчитать количество вхождений в тексте каждого из символов массива #7
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 <iomanip>
 
char * findchar(char * str, char ch){
    for(;*str;++str)
        if (*str==ch) return str;
    return NULL;
}
 
 
int main(){
    char txt[]="my text. mmoh yuignnhjdc";
    char fstr[]="mceyu.lkgh";
    int slen=strlen(fstr);
    int * countchar=new int[slen];
    memset(countchar,0,slen*sizeof(*countchar));
    for(char *p=txt,*pf;*p;++p){
        if (pf=findchar(fstr,*p)) {
            ++(countchar[pf-fstr]);
        }
    }
    std::cout<<"Text:\n"<<txt;
    std::cout<<"\nFind:\n"<<fstr<<std::endl;
    for(int i=0;i<slen;++i){
        std::cout<<"Char "<<fstr[i]<<std::setw(3)<<countchar[i]<<std::endl;
    }
    delete [] countchar;
    std::cin.get();
    return 0;
}
Добавлено через 8 минут
Цитата Сообщение от ArtMaster Посмотреть сообщение
C++
1
int b[s.length()];
уточню - только GNU VLA
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
20.12.2012, 00:26     Подсчитать количество вхождений в тексте каждого из символов массива #8
Цитата Сообщение от andyoO Посмотреть сообщение
а еще такой вопрос.. как связать прогу с текстовым файлом? т.к. текст задан в файле..
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
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cstring>
char * findchar(char * str, char ch){
    for(;*str;++str)
        if (*str==ch) return str;
    return NULL;
}
 
 
int main(){
    std::ifstream file("input.txt",std::ios_base::binary);
    file.seekg(0,std::ios::end);
    int txtlen=file.tellg();
    file.seekg(0,std::ios::beg);
    char * txt=new char[txtlen+1];
    file.read(txt,txtlen);
    txt[txtlen]=0;
    char fstr[]="mceyu.lkgh";
 
    int slen=strlen(fstr);
    int * countchar=new int[slen];
    memset(countchar,0,slen*sizeof(*countchar));
    for(char *p=txt,*pf;*p;++p){
        if (pf=findchar(fstr,*p)) {
            ++(countchar[pf-fstr]);
        }
    }
    std::cout<<"Text:\n"<<txt;
    std::cout<<"\nFind:\n"<<fstr<<std::endl;
    for(int i=0;i<slen;++i){
        std::cout<<"Char "<<fstr[i]<<std::setw(5)<<countchar[i]<<std::endl;
    }
    delete [] countchar;
    delete [] txt;
    std::cin.get();
    return 0;
}
Подсчитать количество вхождений в тексте каждого из символов массива
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
20.12.2012, 00:29  [ТС]     Подсчитать количество вхождений в тексте каждого из символов массива #9
всем спасибо огромное, выручили)
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
25.12.2012, 09:04  [ТС]     Подсчитать количество вхождений в тексте каждого из символов массива #10
error C2039: setw: не является членом "std"
error C3861: setw: идентификатор не найден
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2012, 20:13     Подсчитать количество вхождений в тексте каждого из символов массива
Еще ссылки по теме:

вывод числа вхождений каждого из символов первой строки во вторую строку C++
Подсчитать количество вхождений каждого символа в строку C++
Заменить значение каждого неположительного элемента массива абсолютной величиной, подсчитать количество замен C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
25.12.2012, 20:13     Подсчитать количество вхождений в тексте каждого из символов массива #11
Цитата Сообщение от andyoO Посмотреть сообщение
error C2039: setw: не является членом "std"
error C3861: setw: идентификатор не найден
подключен хедер?
C++
1
#include <iomanip>
Yandex
Объявления
25.12.2012, 20:13     Подсчитать количество вхождений в тексте каждого из символов массива
Ответ Создать тему
Опции темы

Текущее время: 15:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru