Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5. #include <stdlib.h>
  6.  
  7. #define SPR (" ,.") /* разделители */
  8. #define HEX_SYMBOLS ("0123456789abcdef") /* Цифры 16-ой с/c */
  9. #define TEXT_LEN (2048) /* Максимальная длина текста */
  10.  
  11. int main()
  12. {
  13.   setlocale(LC_ALL, "Russian");
  14.  
  15.     /* Ввод текста */
  16.     char text[TEXT_LEN + 1]; /* Массив, хранящий символы */
  17.   printf("Введите строку: ");
  18.   gets(text);
  19.  
  20.     char* str = strtok(text, SPR); /* получить первую лексему */
  21.     while (str != NULL)
  22.     {
  23.     int isHexLex = 1; /* лексема состоит из цифр 16 с/c */
  24.  
  25.     /* проверяем все элементы лексемы */
  26.     for (int i = 0; i < strlen(str); ++i)
  27.     {
  28.       /* если проверяемый символ не является цифрой 16 c/c */
  29.       if (!strchr(HEX_SYMBOLS, tolower(str[i])))
  30.       {
  31.           isHexLex = 0; /* лексема не состоит из цифр 16 с/c */
  32.           break;
  33.         }
  34.     }
  35.  
  36.     /* если лексема состоит из цифр 16 c/c */
  37.     if (isHexLex)
  38.     {
  39.       printf("%s\n", str); /* вывести его */
  40.     }
  41.  
  42.         str = strtok(NULL, SPR); /* получить следующую лексему */
  43.     }
  44.  
  45.  
  46.   //system("pause");
  47.   return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement