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

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

Войти
Регистрация
Восстановить пароль
 
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
#1

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

02.06.2013, 16:30. Просмотров 736. Ответов 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;
}
и

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]<<" ";
}
Второй вариант мне больше подходит, но он не рабочий. Подключил библиотеки, систем пауза, вроде как надо все - все равно не работает. Первый очень трудный для моего понимания, такого уровня программы мне еще не даются. Кто нибудь может помочь? Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2013, 16:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дана строка символов. Подсчитать общее число вхождений символов (C++):

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

Общее число вхождений символов - C++
Здраствуйте, требуется помошь по C++. Вот сама задача: Дана строка символов. Подсчитать общее число вхождений символов + , . в...

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

Дана строка символов. Подсчитать самую длинную последовательность подряд идущих букв а. - C++
Дана строка символов. Подсчитать самую длинную последовательность подряд идущих букв а.( P.S. напишите полную программу попроще. С++ знаю...

Дана строка из нулей и единиц. Подсчитать количество символов в самой длинной группе - C++
Дана строка, состоящая из групп нулей и единиц. Подсчитать количест-во символов в самой длинной группе.

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MarVaL
С++ Beginner
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 16:34 #2
Цитата Сообщение от Saddiel Посмотреть сообщение
Второй вариант мне больше подходит, но он не рабочий. Подключил библиотеки, систем пауза, вроде как надо все - все равно не работает. Первый очень трудный для моего понимания, такого уровня программы мне еще не даются. Кто нибудь может помочь? Заранее спасибо.
подключи:
C++
1
2
#include <string>
#include <iostream>
и
C++
1
using namespace std;
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
02.06.2013, 16:51  [ТС] #3
Цитата Сообщение от MarVaL Посмотреть сообщение
подключи:
C++
1
2
#include <string>
#include <iostream>
и
C++
1
using namespace std;
Это у меня уже подключено. Выдает ошибку типа "[Error] 'i' does not name a type " и "[Error] expected unqualified-id before 'for' " обе в 11 строке. В таких ошибках не шарю, но тут вроде что то про тип? Тип i то указан. В чем проблема тогда?
MarVaL
С++ Beginner
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 16:58 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
 
const int bufSize = 256;
 
int main() {
  char str[bufSize];
  int count = 0;
  std::cout << "Please enter text: " << std::endl;
  std::cin.get(str, bufSize);
  std::cout << "Your text: ";
  std::cout << str << std::endl;
  for(unsigned i = 0; i < strlen(str); ++i) {
    if(str[i] == ',' || str[i] == '.' || str[i] == '+')
      count++;
  }
  std::cout << "Count(,.+): " << count << std::endl;
  return 0;
}
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
02.06.2013, 17:12  [ТС] #5
Цитата Сообщение от MarVaL Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstring>
 
const int bufSize = 256;
 
int main() {
  char str[bufSize];
  int count = 0;
  std::cout << "Please enter text: " << std::endl;
  std::cin.get(str, bufSize);
  std::cout << "Your text: ";
  std::cout << str << std::endl;
  for(unsigned i = 0; i < strlen(str); ++i) {
    if(str[i] == ',' || str[i] == '.' || str[i] == '+')
      count++;
  }
  std::cout << "Count(,.+): " << count << std::endl;
  return 0;
}
Большое спасибо, отлично работает.

Добавлено через 7 минут
Я так понимаю bufSize тут как ограничитель количества символов в строке?
MarVaL
С++ Beginner
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 17:13 #6
Цитата Сообщение от Saddiel Посмотреть сообщение
Я так понимаю bufSize тут как ограничитель количества символов в строке?
Правильно понимаете
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
02.06.2013, 17:28  [ТС] #7
Если не сложно, подскажите еще вот эти две строчки)) Bообщем:

C++
1
2
3
std::cin.get(str, bufSize); // Не совсем понимаю эту строчку, а именно get (в чем ее соль?)
 
for(unsigned i = 0; i < strlen(str); ++i) { // Тут "unsigned". Т.е тип пока неизвестно какой? И мы не можем с точностью задать его как int к примеру? Неизвестно же что будет в строке.
Думаю после этого точно отстану, т.к понял программу
MarVaL
С++ Beginner
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 17:32 #8
Цитата Сообщение от Saddiel Посмотреть сообщение
std::cin.get(str, bufSize); // Не совсем понимаю эту строчку, а именно get (в чем ее соль?)
std::cin.get() - get метод объекта cin, считывает из потока cin в строку str размером bufSize - 1


Цитата Сообщение от Saddiel Посмотреть сообщение
for(unsigned i = 0; i < strlen(str); ++i) { // Тут "unsigned". Т.е тип пока неизвестно какой? И мы не можем с точностью задать его как int к примеру? Неизвестно же что будет в строке.
Беззнаковый целый тип(unsigned int = unsigned), для сравнения в условии i < strlen(str). Можно поставить вместо unsigned - int, просто у меня компилятор ругается
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2013, 17:32
Привет! Вот еще темы с ответами:

Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран. - C++
Помогите решить задачи: 1. Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром,...

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

Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки. - C++
Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки. Ввод В первой строке файла...

Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. - C++
Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке. Например: Мама,...


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

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

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