Является данная строка инденфикатором? - 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;
}

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

  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
Похожие ответы