Поиск, сколько символов в строке 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-й символ в строке
Приставляя указатель к *, вы говорите, что я хочу знать содержимое, на которое указывает этот указатель