Является данная строка инденфикатором? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

я не знаю ли правильно сделал задание является данная строка индефикатором?
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include<conio.h>
  4. char st[10000];
  5. int k;
  6. int Ident(int i, char* f)
  7. {
  8. int j;
  9. for(j =0; j < i; j++)
  10. if ((! (('a'<=f[j]) && (f[j]<='z')) || ('0'<=f[j]) && (f[j]<='9')
  11. || ((f[j]=='_')) || (('A'<=f[j]) && (f[j]<='Z')) && (f[j]!='_')))
  12. return 0;
  13. return 1;
  14. }
  15. int main()
  16. {
  17. printf("vvedit stroky \n");
  18. gets(st);
  19. if(Ident(strlen(st), st))
  20. printf("stroka is indefikator");
  21. else
  22. printf("stroka no indefikator");
  23. getch();
  24. return 0;
  25. }

Решение задачи: «Является данная строка инденфикатором?»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. int check(const char* str) {
  5.     int isOk = isalpha(*str) || (*str == '_');
  6.     for (++str; isOk && *str; ++str) {
  7.         isOk = isalnum(*str) || (*str == '_');
  8.     }
  9.     return isOk;
  10. }
  11.  
  12. int main() {
  13.     printf("%s\n", check("") ? "yes" : "no");
  14.     printf("%s\n", check("a1") ? "yes" : "no");
  15.     printf("%s\n", check("_abc") ? "yes" : "no");
  16.     printf("%s\n", check("4fef") ? "yes" : "no");
  17.     printf("%s\n", check("META_12") ? "yes" : "no");
  18.     printf("%s\n", check("META_1.2") ? "yes" : "no");
  19.  
  20.     return 0;
  21. }

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

  1. Включаем необходимые заголовочные файлы для работы с функциями ввода-вывода и проверки типов данных.
  2. Создаем функцию check, которая принимает в качестве аргумента указатель на строку и проверяет, является ли она идентификатором. Возвращает 1, если является, и 0 в противном случае.
  3. Внутри функции check инициализируем переменную isOk значением isalpha(str[0]) || (str[0] == '_'). Это условие проверяет, является ли первый символ строки буквой или подчеркиванием.
  4. Затем в цикле проходим по остальным символам строки, начиная со второго. Для каждого символа проверяем, является ли он буквой, цифрой или подчеркиванием. Если да, то обновляем значение isOk.
  5. Возвращаем isOk в конце функции.
  6. В функции main вызываем функцию check для разных строк и выводим результат на экран.
  7. Код выводит yes, если строка является идентификатором, и no, если нет.
  8. Завершаем программу, возвращая 0.

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


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

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

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы