У меня проблемы с получением моего кода для правильного подсчета количества букв в строке. Мой код все еще считает пробелы, даже если функция, которую я вызвал ниже, проверяет только символы алфавита c, в которых он все еще считает пробелы. Если я набираю Hello World, то считается 11 букв, хотя присутствуют только 10 букв
isalpha () проверяет наличие алфавита c; в стандартной локали "C" он эквивалентен (isupper (c) || islower (c)). В некоторых локалях могут быть дополнительные символы, для которых isalpha () имеет значение true - буквы, которые не являются ни прописными, ни строчными.
Вот мой код
#include <stdio.h>
#include <math.h>
#include <cs50.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
//gets user input
string input = get_string("Text: ");
//counter for the number of letters
int numLetters = 0;
//looks at each character in the string
for(int i = 0, n = strlen(input); i < n; i++)
{
//checks to see if the characeter is in the alphabet
if(input[isalpha(i)])
{
//add to the number of letters in the string
numLetters++;
}
}
printf("letter(s) %i", numLetters);
printf("\n");
}