Проверить строку на присутствие каждой буквы слова 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены следующие переменные:
    • pszStr - строка, в которую считывается входная строка.
    • pCurr - указатель, который перемещается по символам входной строки.
    • bFlagK, bFlagE, bFlagY - флаги, которые отслеживают наличие букв 'k', 'e', 'y' соответственно.
  2. Пользователю предлагается ввести строку.
  3. Используется функция scanf для считывания строки во входную переменную pszStr.
  4. Переменная pCurr инициализируется значением pszStr.
  5. В цикле while происходит проверка каждого символа входной строки.
  6. Если символ равен 'k' или 'K', то устанавливается флаг bFlagK.
  7. Если символ равен 'e' или 'E', то устанавливается флаг bFlagE.
  8. Если символ равен 'y' или 'Y', то устанавливается флаг bFlagY.
  9. Переменная pCurr инкрементируется, чтобы перейти к следующему символу.
  10. В конце цикла проверяется, установлены ли все три флага. Если да, то выводится сообщение Success, в противном случае выводится сообщение Fail.
  11. Код возвращает 0, завершая работу программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы