Ошибка в подсчете количества вхождений символа в строку - C (СИ)
Формулировка задачи:
Подскажите пожалуйста, в чем ошибка?
Листинг программы
- 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;
- }
Решение задачи: «Ошибка в подсчете количества вхождений символа в строку»
textual
Листинг программы
- {
- 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;
- }
Объяснение кода листинга программы
В данном коде выполняется подсчет количества вхождений символа 'a' в строку adad aa asasda
.
- Создается символ 'a', который будет являться искомым.
- Создается указатель на строку
adad aa asasda
. - Создается переменная n, которая будет хранить количество найденных символов.
- В цикле for перебираются все символы строки str.
- Для каждого символа проверяется, равен ли он искомому символу 'a'.
- Если символ равен 'a', то к переменной n прибавляется единица.
- По завершении цикла возвращается 0. Таким образом, результатом работы программы будет число 2, так как символ 'a' встречается в строке два раза.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д