Ошибка в подсчете количества вхождений символа в строку - 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' встречается в строке два раза.