Если я ввешу строку Beckham12David, она покажет ошибку, как ожидалось, и попросит снова ввести строку. Если я вхожу Дэвид тогда он будет показывать ошибку, но если я вхожу Бэкхем он будет принимать строковоеНеожиданное поведение строк
код ниже:
int i=0;
char str[15];
cout<<"\n\n Enter String(Only aplhabets)";
gets(str);
a:
while (str[i])
{
if (isalpha(str[i]))
{
}
else
{
cout<<"\n\nWrong String Entered!!!! Please Enter again";
gets(str);
goto a;
}
i++;
}
getch();
}
Включить все предупреждения и отладочную информацию во время компиляции (с помощью [GCC] (http://gcc.gnu.org/) скомпилировать с помощью 'g ++ -Wall -g') и узнать, как использовать отладчик (например,' gdb'). –
sidebar: удалить 'gets()' из любого кода, который вы пишете. Это ужасная функция, которая настолько плоха, что она устарела и не долго для этого мира. – WhozCraig
Кроме того, рассмотрите возможность использования в C++ 'std :: string' –