Подсчет слов в строке - Из-за апострофов программа работает неправильно - C (СИ)
Формулировка задачи:
из-за например апострофов программа работает неправильно.
почему нельзя исправить это так?
#include <stdio.h>
#include <stdbool.h>
bool alphabetic(const char c)
{
if((c>='a' && c<='z') || (c>='A' && c<='Z') )
return true;
else
return false;
}
int countWords(const char string[])
{
int i,wordCount=0;
bool lookingForWords=true,alphabetic (const char c);
for(i=0; string[i]!='\0';++i)
if(alphabetic(string[i]))
{
if(lookingForWords)
{
++wordCount;
lookingForWords=false;
}
}
else
lookingForWords=true;
return wordCount;
}
int main(void){
const char text1[]="well,he're go'es";
const char text2[]="and here we go";
int countWords(const char string[]);
printf("%s -words=%i\n",text1,countWords(text1));
printf("%s -words=%i\n",text2,countWords(text2));
}if((c>='a' && c<='z') || (c>='A' && c<='Z') || с==96)
Решение задачи: «Подсчет слов в строке - Из-за апострофов программа работает неправильно»
textual
Листинг программы
bool alphabetic(const char c)
{
return ((c>='a' && c<='z') || (c>='A' && c<='Z') || c =='\'');
}
Объяснение кода листинга программы
- В функции
alphabeticпроверяется, является ли символcбуквой. - Возвращается
true, если символcявляется буквой от 'a' до 'z', от 'A' до 'Z' или равен '\''. - В условии используются операторы
>=и<=для проверки диапазона символов.