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

  1. Создается символ 'a', который будет являться искомым.
  2. Создается указатель на строку adad aa asasda.
  3. Создается переменная n, которая будет хранить количество найденных символов.
  4. В цикле for перебираются все символы строки str.
  5. Для каждого символа проверяется, равен ли он искомому символу 'a'.
  6. Если символ равен 'a', то к переменной n прибавляется единица.
  7. По завершении цикла возвращается 0. Таким образом, результатом работы программы будет число 2, так как символ 'a' встречается в строке два раза.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы