Поиск, сколько символов в строке C

Моя задача - подсчитать, сколько символов в строке C. Входные данные предоставляются тестовым драйвером, к которому у меня нет доступа, но моя функция предназначена для доступа к данным и определения количества символов в диапазоне от z до z, но моя программа продолжает давать сбой, и я не уверен, что я делаю неправильно.

int countLetters(char * const line)
{
    char index = *line;
    int count;

   while(!index)
    {
        if (index >= 'a' && index <= 'z')
            count++;

        if (index >= 'A' && index <= 'Z')
            count++;
    }
    return count;

}

1 ответ

Решение

Попробуй это

int countLetters(char * const line)
{
    int index = 0;
    int count = 0;

    while(line[index])
    {
        if (line[index] >= 'a' && line[index] <= 'z')
            count++;

        if (line[index] >= 'A' && line[index] <= 'Z')
            count++;

        index++;
    }
    return count;
}

Вот что ты сделал не так
Первое: вы присваиваете свой индекс char = *line; сделать ваш индекс первым символом в строке, что неверно, поскольку предполагается, что индекс представляет позицию, а не символ
Второе: вы не предоставили никакого механизма для увеличения индекса в другом, чтобы зациклить строку
Третье: вы не инициализировали переменную count

Замечания: line[index] такой же как *(line + index)
Ваш line указатель, который указывает на первый символ в строке
Так line + index указатель, указывающий на индексный n-й символ в строке
Приставляя указатель к *, вы говорите, что я хочу знать содержимое, на которое указывает этот указатель

Другие вопросы по тегам