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

Как правильно реализовать поиск количества заданого символа - C++

Восстановить пароль Регистрация
 
wisdom
Сообщений: n/a
06.04.2009, 12:15     Как правильно реализовать поиск количества заданого символа #1
Доброго времени суток.
Вообщем имеется такой код, в котором нужно найти количество символа а , правильно ли будет так реализовать ?
Если правильно , то еще вопрос , при первом же проходе цикла переменная і почемуто присваивает значение 9, как "заставить" цикл нормально работать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void main()
{
  char * symbline = "aaanjfbrie"; 
  int linelength = strlen(symbLine)
  int findsymbcount()
  {
    int count = 0;
    for ( int i = 0; i < linelength - 1; i++)
    {
        if (symbLine[i] == 'a')
        {
            count = count + 1;
        }
    }
    return count;
  }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2009, 12:15     Как правильно реализовать поиск количества заданого символа
Посмотрите здесь:

Поиск количества слов строке(как можно проще) C++
Как правильно реализовать заполнение двумерного массива элементами C++
C++ Как реализовать движение символа по экрану? ncurses.h
Как осуществляется поиск символа в строке? C++
C++ Передача неизвестного количества аргументов в функцию, как реализовать?
Как правильно реализовать инициализацию массива функцией? C++
C++ Как правильно реализовать полиморфизм?
C++ Поиск заданого числа в массиве
Как правильно реализовать класс? C++
C++ Как правильно реализовать обобщённый класс?
Как правильно реализовать множественное наследование? C++
Как реализовать нахождение количества членов полинома? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YurA_280784
Заблокирован
06.04.2009, 12:37     Как правильно реализовать поиск количества заданого символа #2
Сделай лучше так...
void main()
{
char * symbline = "aaanjfbrie";
int nCount = 0;
while(symbLine)
{
if(symbLine[0] == 'a')
nCount++;
if(symbLine)
symbLine++;
else
break;
}
}
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
06.04.2009, 12:41     Как правильно реализовать поиск количества заданого символа #3
вот так вот правильней... в твоем коде:
1. не вызывалась функция
2. функция проходила на один символ меньше
3. была ошибка: Си++ чувствителен к регистру.. symbLine - это не symbline

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int findsymbcount(char *str, int size)
{
  int count = 0;
  
  for (int i = 0; i < size; i++)
    if (str[i] == 'a') count++;
  
  return count;
}
  
void main()
{
  char * symbline = "aaanjfbriea"; 
  int linelength = strlen(symbline);
  
  cout << "Count = " << findsymbcount(symbline,linelength);
  system("pause");
}
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
06.04.2009, 12:47     Как правильно реализовать поиск количества заданого символа #4
Можно еще так оформить.
C
1
2
3
4
5
6
7
8
9
int nchar(char *s, int c)
{
    int count = 0;
    while( (s = strchr(s, c)) != NULL ) {
        count++;
        s++;
    }
    return count;
}
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.04.2009, 02:54     Как правильно реализовать поиск количества заданого символа #5
если strchr(s, c) вводишь, то нужно подключить string.h, иначе она может определиться как возвращающая int

ещё вариант
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
/* CountCharLine:  считает в строке l количество символов ch */
int CountCharLine(const char *l, int ch)
{
    int n;
    
    if (l == NULL)
        return EOF;
    for (n = 0; *l; l++)
        if (*l == ch)
            n++;
    return n;
}
Yandex
Объявления
07.04.2009, 02:54     Как правильно реализовать поиск количества заданого символа
Ответ Создать тему
Опции темы

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