Аватар для Saddiel
7 / 7 / 3
Регистрация: 02.11.2012
Сообщений: 152

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

02.06.2013, 16:30. Показов 1573. Ответов 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]<<" ";
}
Второй вариант мне больше подходит, но он не рабочий. Подключил библиотеки, систем пауза, вроде как надо все - все равно не работает. Первый очень трудный для моего понимания, такого уровня программы мне еще не даются. Кто нибудь может помочь? Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2013, 16:30
Ответы с готовыми решениями:

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

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

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

7
С++ Beginner
 Аватар для MarVaL
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 16:34
Цитата Сообщение от Saddiel Посмотреть сообщение
Второй вариант мне больше подходит, но он не рабочий. Подключил библиотеки, систем пауза, вроде как надо все - все равно не работает. Первый очень трудный для моего понимания, такого уровня программы мне еще не даются. Кто нибудь может помочь? Заранее спасибо.
подключи:
C++
1
2
#include <string>
#include <iostream>
и
C++
1
using namespace std;
1
 Аватар для Saddiel
7 / 7 / 3
Регистрация: 02.11.2012
Сообщений: 152
02.06.2013, 16:51  [ТС]
Цитата Сообщение от 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 то указан. В чем проблема тогда?
0
С++ Beginner
 Аватар для MarVaL
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 16:58
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;
}
1
 Аватар для Saddiel
7 / 7 / 3
Регистрация: 02.11.2012
Сообщений: 152
02.06.2013, 17:12  [ТС]
Цитата Сообщение от 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 тут как ограничитель количества символов в строке?
0
С++ Beginner
 Аватар для MarVaL
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 17:13
Цитата Сообщение от Saddiel Посмотреть сообщение
Я так понимаю bufSize тут как ограничитель количества символов в строке?
Правильно понимаете
0
 Аватар для Saddiel
7 / 7 / 3
Регистрация: 02.11.2012
Сообщений: 152
02.06.2013, 17:28  [ТС]
Если не сложно, подскажите еще вот эти две строчки)) Bообщем:

C++
1
2
3
std::cin.get(str, bufSize); // Не совсем понимаю эту строчку, а именно get (в чем ее соль?)
 
for(unsigned i = 0; i < strlen(str); ++i) { // Тут "unsigned". Т.е тип пока неизвестно какой? И мы не можем с точностью задать его как int к примеру? Неизвестно же что будет в строке.
Думаю после этого точно отстану, т.к понял программу
0
С++ Beginner
 Аватар для MarVaL
120 / 120 / 77
Регистрация: 28.02.2013
Сообщений: 246
02.06.2013, 17:32
Цитата Сообщение от 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, просто у меня компилятор ругается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2013, 17:32
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Новые блоги и статьи
Тестирование Pull Request в Kubernetes с vCluster
Mr. Docker 19.07.2025
Часто сталкиваюсь с серьезной дилемой при настройке тестовых окружений для проверки Pull Request в Kubernetes. С одной стороны, каждый PR требует изолированной среды — только так можно гарантировать,. . .
Мой 7 минутный ролик с крамольным предложением про шахматы, предлагаю заценить
_Ivana 18.07.2025
p2UhJNMGY94
Десять Middleware Node.js для эффективного кодинга
Reangularity 18.07.2025
Когда я только начинал работать с Node. js, количество пакетов в npm меня буквально парализовало. Сегодня их больше 1,3 миллиона — попробуй разберись, что стоит твоего внимания, а что нет. Я потратил. . .
Context и глубины Android
mobDevWorks 18.07.2025
В Android разработки Context напоминает воздух - он везде, жизненно необходим, но мало кто может детально объяснить его природу. Мы привыкли получать его как параметр, передавать дальше и. . .
Результаты исследования от команды MCM (июль 2025 г.)
Programma_Boinc 18.07.2025
Результаты исследования от команды MCM (июль 2025 г. ) Как сообщалось в наших предыдущих публикациях, мы изучаем гены, которые имеют наибольший рейтинг и ассоциируются с различными видами рака, в. . .
ИИ-чатбот на React с OpenAI и LangChain.js
Reangularity 17.07.2025
React давно стал для меня золотым стандартом фронтенд-разработки. Его компонентная структура, виртуальный DOM и однонаправленный поток данных идеально подходят для создания динамичных интерфейсов. . .
Пишем адаптер для локального хранилища S3 на C#
stackOverflow 16.07.2025
Разработка современных приложений часто требует интеграции с объектными хранилищами, и Amazon S3 стал де-факто стандартом в этой области. Однако работа с облачными сервисами в процессе разработки. . .
Старые замки
kumehtar 16.07.2025
Смотрел тут фото, попались пара старых замков. И сразу бросилось в глаза из отличие. Например: Замок Бистон, в англии. Разрушенное сооружение. Но - не испорченное людьми, по крайней мере - на. . .
Java и Eclipse Store: Сверхбыстрые приложения с In-Memory DB
Javaican 15.07.2025
Eclipse Store — это микро-движок персистентности для Java, который позволяет хранить и извлекать нативные Java-объекты без необходимости преобразования данных или использования объектно-реляционного. . .
EmBitz, создание проекта, отладка, прошивка
locm 15.07.2025
Создание проекта для Blue Pill (STM32F103C8T6) в EmBitz 2. 30, написания кода blink, запуск отладки в ОЗУ, заливка релизной прошивки во flash используя ST-Link и др. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru