1 / 1 / 0
Регистрация: 12.04.2014
Сообщений: 61
1

Ошибка в подсчете количества вхождений символа в строку

28.09.2014, 13:36. Показов 1469. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, в чем ошибка?
C
1
2
3
4
5
6
7
8
9
10
11
int _tmain(int argc, _TCHAR* argv[])
{
    char sym = 'a';
    char str[] = {"adad aa asasda"};
    int n = 0;
    for (int j = 0; j < strlen(str); j++)
    {
        if (0 == strcmp((char*)str[j], (char*)sym)) n++;
    }
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2014, 13:36
Ответы с готовыми решениями:

Подсчет количества вхождений каждого символа в строку
Пожалуйста,помогите! Написать функцию CountCharsMy::String-&gt;,которая подсчитывает количество...

Ошибка в подсчете количества инверсий
Здравствуйте, помогите разобраться с подсчетом количества инверсий, в случае повторяющихся...

Считать строку, и найти число вхождений символа в эту строку (с использованием strchr)
Почему не работает, компилятор ошибок не ловит, при запуске вылетает с ошибкой. Программа должна...

Ошибка в подсчёте количества элементов List
Всем привет. Никак не могу понять, почему система выводит всегда разные значения в MessageBox ...

5
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,606
Записей в блоге: 13
28.09.2014, 13:45 2
Лучший ответ Сообщение было отмечено Zimos как решение

Решение

Будь проще!

C
1
2
3
4
5
6
7
8
9
10
{
    char sym = 'a';
    char *str = "adad aa asasda";
    int n = 0;
    for (int j = 0; j < strlen(str); j++)
    {
        if (*(str+j)==sym) n++;
    }
    return 0;
}
1
1 / 1 / 0
Регистрация: 12.04.2014
Сообщений: 61
28.09.2014, 13:57  [ТС] 3
Спасибо.
0
430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
28.09.2014, 21:33 4
Цитата Сообщение от Catstail Посмотреть сообщение
j < strlen(str)
http://avl2.info/index.php?opt... r&Itemid=8
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,606
Записей в блоге: 13
28.09.2014, 21:37 5
Vtulhu, да, это известно... И не делает чести C/С++. А для задачи TC снижения производительности не заметит никакой профайлер.
0
430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
28.09.2014, 22:32 6
Кстати, у Вас в третьей строке тоже крайне подозрительный код. Не уверен я в нем. Лучше объявлять строки одним из двух способов (в зависимости от того, понадобится ли нам в будущем менять ее):

C
1
2
char str[] = "abcd";
const char* const str = "abcd";
Кроме того, совершенно непонятно, зачем здесь вообще strlen. В конце строки нулевой символ, так что мы в любом случае об этом узнаем. И если уж мы подключили string.h, почему бы не воспользоваться функцией strchr?

Наивная реализация (даже не требует string.h):

C
1
2
3
4
5
6
7
8
9
int count_sym(const char* str, const char sym)
{
    int counter = 0;
    while( *str ) {
        counter += *str == sym;
        ++str;
    }
    return counter;
}
Чуть поинтереснее (через strchr):

C
1
2
3
4
5
6
7
8
9
int count_sym(char* str, const int sym)
{
    int counter = 0;
    while( str = strchr(str, sym) ) {
        ++counter;
        ++str;
    }
    return counter;
}
0
28.09.2014, 22:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2014, 22:32
Помогаю со студенческими работами здесь

Для подсчета количества вхождений в заданный текст символа 's'
Написать программу для подсчета количества вхождений в заданный текст символа 's'.

Определение количества вхождений заданного символа в заданной строке
помогите разобраться с этим заданием. Нужно дополнить код функциями, чтобы выполнялась задача:...

Программа поиска и подсчета количества вхождений символа в строке
разработать программу поиска и подсчета количества вхождений символа 'h' в строке 'Conditions test...

Подсчет количества вхождений каждого символа в текст (некорректно работает)
Прога написано криво-косо, работает соответственно. Суть задания - считать текст с файла, посчитать...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru