Является данная строка инденфикатором? - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д