Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2009, 23:51   #1
Alexion124
 
Регистрация: 03.01.2009
Сообщений: 4
Лампочка Подсчитать кол-во вхождений символа Си++

Товарищи! Подскажите как решить задачу - есть строка, нужно посчитать количество вхождений символа в строку, никак не могу сообразить.
Alexion124 вне форума Ответить с цитированием
Старый 03.01.2009, 23:52   #2
Alexion124
 
Регистрация: 03.01.2009
Сообщений: 4
По умолчанию

пишу на C++ for DOS
Alexion124 вне форума Ответить с цитированием
Старый 03.01.2009, 23:53   #3
Alexion124
 
Регистрация: 03.01.2009
Сообщений: 4
По умолчанию

пробовал использовать функцию chrcnt , но что то не работает...
Alexion124 вне форума Ответить с цитированием
Старый 03.01.2009, 23:59   #4
Alexion124
 
Регистрация: 03.01.2009
Сообщений: 4
По умолчанию

уже все спят?
Alexion124 вне форума Ответить с цитированием
Старый 04.01.2009, 02:42   #5
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Код:
int pks(char*s,char c)
 {
  int n=0;
  while(*s!='\0')
  if(*s==c) n+=1;
  s+=1;
  return n;
 }
Первый параметр указатель на строку, второй символ. Функция возвращает количество вхождения символа в строку.
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 04.01.2009, 21:35   #6
wict0r
 
Регистрация: 25.12.2008
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stepler Посмотреть сообщение
Код:
int pks(char*s,char c)
 {
  int n=0;
  while(*s!='\0')
  if(*s==c) n+=1;
  s+=1;
  return n;
 }
Первый параметр указатель на строку, второй символ. Функция возвращает количество вхождения символа в строку.
Эта функция уйдет в бесконечный цикл, если ее вызвать для непустой строки

Правильно будет так (например):
Код:
int pks(const char *s, char c)
 {
  int n=0;
  while(*s!='\0')
  {
    if(*s==c) ++n;
    ++s;
  }
  return n;
 }
Но это для сишных строк (char *). Если же под строкой имеется ввиду, например, объект std::string, то функция будет немного другой.
wict0r вне форума Ответить с цитированием
Старый 04.01.2009, 23:08   #7
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Цитата:
Эта функция уйдет в бесконечный цикл, если ее вызвать для непустой строки
Функция в любом случае неуйдет в бесконечный цикл, для строки вида s="sdfsdfshdfj\0" или s="\0" ! Так с чего вы судите что цикл будет бесконечним?
Цитата:
Правильно будет так (например):
И что в вашем примере правильнее моего?
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 04.01.2009, 23:40   #8
wict0r
 
Регистрация: 25.12.2008
Сообщений: 3
По умолчанию

Цитата:
Так с чего вы судите что цикл будет бесконечним?
В Вашей функции для непустых строк цикл будет бесконечным, ибо в нем на каждой итерации условие проверяется, а указатель не передвигается (s+=1; уже вне цикла).
wict0r вне форума Ответить с цитированием
Старый 04.01.2009, 23:45   #9
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Ах ну да, постил вчера в 2 часа ночи забыл операторные скобки поставить
Пишу программы на заказ, контакты под аватаром!
Отзывы тут
Stepler вне форума Ответить с цитированием
Старый 05.01.2009, 00:03   #10
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Ребята!!! Давайте ругаться не будем... Главное идея была правильная!
StarWorm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчитать кол-во гласных FireHawK Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.11.2008 19:22
Можно ли подсчитать FPS в другом процессе? Minimus Win Api 7 26.08.2008 02:08
Подсчитать количества знака в числе valerij Microsoft Office Excel 5 17.08.2008 16:52
Подсчитать сумму! Deman4eg Microsoft Office Excel 2 02.04.2008 09:16
подсчитать количество символов слов и предложений nev Помощь студентам 4 09.06.2007 21:22