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

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

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

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

19.12.2012, 23:31. Просмотров 4085. Ответов 12
Метки нет (Все метки)

Задан текст. Задано множество из n символов. Подсчитать количество вхождений в тексте каждого из символов массива

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

Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. - C++
Ребят , помогите плиз , послезавтра экзамен , вот нашел возможные задание , может кто подсказать , или показать решения ? Язык : С++/...

Подсчитать в тексте количество вхождений определенного символа - C++
Составить программы для решения задач на языке С ++ Даны предложения. Подсчитать количество символа «*»

Подсчитать количество вхождений каждого символа в строку - C++
например у Вас есть строка: asddsg В выходной файле, куда Вы запишите результаты работы программы будет: a – 1 s – 2 d – 2 g – 1

Подсчитать количество вхождений в строку определенных символов - C++
Помогите написать программу... Данная строка символов S. Подсчитать : а ) сколько раз среди данных символов встречается символ + и...

Подсчитать количество вхождений в строку заданной последовательности символов - C++
Дана строка символов. Подсчитать количество вхождений в строку заданной последовательности символов. Строка для обработки ввести с...

Подсчитать количество вхождений слова «мама» в строку и вывести номера первых позиций этих вхождений - C++
Помогите исправить ошибку. Как вывести номера первых позиций вхождений слова мама? Подсчитать количество вхождений слова «мама» в строку...

12
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
19.12.2012, 23:34 #2
почему switch не подходит?!
0
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
19.12.2012, 23:35  [ТС] #3
подходит, но там 80+ символов нужно вводить, плюс выдает ошибки..
0
Ichimaru
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 22
19.12.2012, 23:40 #4
!!!!!
0
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]<<" ";
}
2
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
19.12.2012, 23:50  [ТС] #6
ArtMaster, а еще такой вопрос.. как связать прогу с текстовым файлом? т.к. текст задан в файле..
0
Croessmah
Ушел
13762 / 8013 / 922
Регистрация: 27.09.2012
Сообщений: 19,720
Записей в блоге: 3
Завершенные тесты: 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
1
Croessmah
Ушел
13762 / 8013 / 922
Регистрация: 27.09.2012
Сообщений: 19,720
Записей в блоге: 3
Завершенные тесты: 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;
}
Подсчитать количество вхождений в тексте каждого из символов массива
1
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
20.12.2012, 00:29  [ТС] #9
всем спасибо огромное, выручили)
0
andyoO
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 68
25.12.2012, 09:04  [ТС] #10
error C2039: setw: не является членом "std"
error C3861: setw: идентификатор не найден
0
Croessmah
Ушел
13762 / 8013 / 922
Регистрация: 27.09.2012
Сообщений: 19,720
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 20:13 #11
Цитата Сообщение от andyoO Посмотреть сообщение
error C2039: setw: не является членом "std"
error C3861: setw: идентификатор не найден
подключен хедер?
C++
1
#include <iomanip>
0
nonameprogger
0 / 0 / 0
Регистрация: 15.02.2018
Сообщений: 30
12.05.2018, 10:59 #12
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;
}
как реализовать ввод с клавиатуры?

допустим
C++
1
2
cout<< "vvedi txt";
cin>>...
Добавлено через 30 минут
Croessmah,
0
Yetty
329 / 319 / 143
Регистрация: 18.12.2017
Сообщений: 1,329
12.05.2018, 14:12 #13
Цитата Сообщение от nonameprogger Посмотреть сообщение
как реализовать ввод с клавиатуры?
C++
1
2
3
char s[256];
cout << "Enter text:\n";
cin.getline(s, 256);
или через string:

C++
1
2
3
string s;
cout << "Enter text:\n";
getline(cin, s);
0
12.05.2018, 14:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2018, 14:12
Привет! Вот еще темы с ответами:

Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку - C++
Здравствуйте. Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку. Как такую программу сделать? Заранее спасибо за...

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

Строка: После каждого символа А вставить пробел, и подсчитать количество символов B, стоящих между + и - - C++
Помогите пожалуйста решить задачу. После каждого символа А вставить пробел, и подсчитать количество символов B, стоящих между + и - ...

Заменить значение каждого неположительного элемента массива абсолютной величиной, подсчитать количество замен - C++
при заданных x1, x2...xn и y1, y2...yn заменить значение каждого неположительного элемента x1, x2...xn абсолютной величиной...


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

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

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