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

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

Восстановить пароль Регистрация
 
Saddiel
 Аватар для Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
02.06.2013, 16:30     Дана строка символов. Подсчитать общее число вхождений символов #1
Привет всем. Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку. Помогите реализовать данную программу. Нашел пару вариантов на форуме типа:

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++
Дана строка.Подсчитать в ней количество вхождений букв f,k,t. C++
C++ Дана строка символов, пользователь вводит комбинацию символов проверить сколько раз встечается эта комбинация в строке.
C++ Дана строка символов. Подсчитать самую длинную последовательность подряд идущих букв а.
Общее число вхождений символов C++
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MarVaL
С++ Beginner
 Аватар для MarVaL
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
 Аватар для 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
 Аватар для MarVaL
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
 Аватар для 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
 Аватар для MarVaL
116 / 116 / 16
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 17:13     Дана строка символов. Подсчитать общее число вхождений символов #6
Цитата Сообщение от Saddiel Посмотреть сообщение
Я так понимаю bufSize тут как ограничитель количества символов в строке?
Правильно понимаете
Saddiel
 Аватар для 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 к примеру? Неизвестно же что будет в строке.
Думаю после этого точно отстану, т.к понял программу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2013, 17:32     Дана строка символов. Подсчитать общее число вхождений символов
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
MarVaL
С++ Beginner
 Аватар для MarVaL
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, просто у меня компилятор ругается
Yandex
Объявления
02.06.2013, 17:32     Дана строка символов. Подсчитать общее число вхождений символов
Ответ Создать тему
Опции темы

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