Является данная строка инденфикатором? - C (СИ)
Формулировка задачи:
я не знаю ли правильно сделал задание является данная строка индефикатором?
#include <stdio.h> #include <string.h> #include<conio.h> char st[10000]; int k; int Ident(int i, char* f) { int j; for(j =0; j < i; j++) if ((! (('a'<=f[j]) && (f[j]<='z')) || ('0'<=f[j]) && (f[j]<='9') || ((f[j]=='_')) || (('A'<=f[j]) && (f[j]<='Z')) && (f[j]!='_'))) return 0; return 1; } int main() { printf("vvedit stroky \n"); gets(st); if(Ident(strlen(st), st)) printf("stroka is indefikator"); else printf("stroka no indefikator"); getch(); return 0; }
Решение задачи: «Является данная строка инденфикатором?»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> int check(const char* str) { int isOk = isalpha(*str) || (*str == '_'); for (++str; isOk && *str; ++str) { isOk = isalnum(*str) || (*str == '_'); } return isOk; } int main() { printf("%s\n", check("") ? "yes" : "no"); printf("%s\n", check("a1") ? "yes" : "no"); printf("%s\n", check("_abc") ? "yes" : "no"); printf("%s\n", check("4fef") ? "yes" : "no"); printf("%s\n", check("META_12") ? "yes" : "no"); printf("%s\n", check("META_1.2") ? "yes" : "no"); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с функциями ввода-вывода и проверки типов данных.
- Создаем функцию
check
, которая принимает в качестве аргумента указатель на строку и проверяет, является ли она идентификатором. Возвращает1
, если является, и0
в противном случае. - Внутри функции
check
инициализируем переменнуюisOk
значениемisalpha(str[0]) || (str[0] == '_')
. Это условие проверяет, является ли первый символ строки буквой или подчеркиванием. - Затем в цикле проходим по остальным символам строки, начиная со второго. Для каждого символа проверяем, является ли он буквой, цифрой или подчеркиванием. Если да, то обновляем значение
isOk
. - Возвращаем
isOk
в конце функции. - В функции
main
вызываем функциюcheck
для разных строк и выводим результат на экран. - Код выводит
yes
, если строка является идентификатором, иno
, если нет. - Завершаем программу, возвращая
0
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д