Проверить строку на присутствие каждой буквы слова key - C (СИ)
Формулировка задачи:
Нужно проверить строку на присутствие каждой буквы слова key!
Где ошибка?
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main(void)
{
char str[128];
bool res;
printf("Enter string! ");
scanf("%s",&str);
printf("str = %s\n",str);
for(int i(0);str[i] !='\0'; i++)
{
if(str[i] == 'k')
res = true;
if(str[i] == 'e')
res = true;
if(str[i] == 'y')
res = true;
else res = false;
}
printf("res = %d",res);
_getch();
return 0;
}Решение задачи: «Проверить строку на присутствие каждой буквы слова key»
textual
Листинг программы
int main(int argc,char** argv)
{
char pszStr[MAX_PATH];
char* pCurr = pszStr;
bool bFlagK = false;
bool bFlagE = false;
bool bFlagY = false;
printf("Enter string: ");
scanf("%s",&pszStr);
while (*pCurr)
{
if ((*pCurr == 'k') || (*pCurr == 'K'))
{
bFlagK = true;
}
if ((*pCurr == 'e') || (*pCurr == 'E'))
{
bFlagE = true;
}
if ((*pCurr == 'y') || (*pCurr == 'Y'))
{
bFlagY = true;
}
++pCurr;
}
if (bFlagK && bFlagE && bFlagY)
{
printf("Success\n");
}
else
{
printf("Fail\n");
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
pszStr- строка, в которую считывается входная строка.pCurr- указатель, который перемещается по символам входной строки.bFlagK,bFlagE,bFlagY- флаги, которые отслеживают наличие букв 'k', 'e', 'y' соответственно.
- Пользователю предлагается ввести строку.
- Используется функция
scanfдля считывания строки во входную переменнуюpszStr. - Переменная
pCurrинициализируется значениемpszStr. - В цикле
whileпроисходит проверка каждого символа входной строки. - Если символ равен 'k' или 'K', то устанавливается флаг
bFlagK. - Если символ равен 'e' или 'E', то устанавливается флаг
bFlagE. - Если символ равен 'y' или 'Y', то устанавливается флаг
bFlagY. - Переменная
pCurrинкрементируется, чтобы перейти к следующему символу. - В конце цикла проверяется, установлены ли все три флага. Если да, то выводится сообщение
Success, в противном случае выводится сообщениеFail. - Код возвращает 0, завершая работу программы.