Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2013, 19:58   #1
AnnaKol
Пользователь
 
Регистрация: 19.11.2012
Сообщений: 12
По умолчанию идентификатор C++

Как можно проверить является ли последовательность символов идентификатором?
AnnaKol вне форума Ответить с цитированием
Старый 18.04.2013, 20:14   #2
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Наверное, убедиться, что последовательность не содержит недопустимых символов и начинается с буквы латинского алфавита или символа нижнего подчеркивания.
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 18.04.2013, 20:19   #3
AnnaKol
Пользователь
 
Регистрация: 19.11.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от alexander13 Посмотреть сообщение
Наверное, убедиться, что последовательность не содержит недопустимых символов и начинается с буквы латинского алфавита или символа нижнего подчеркивания.
Я новичок только только начала изучать
Пробую вот так
Код:
char t[100];
for(int i=0;i<100;i++)
cout<<"Vvod posledovatelnosti"<<endl;
cin>>t[i];
if(t[0]=1||t[0]="_")
 {cout<<"Id yes"<<endl;
 }
 else 
 {cout<<"Id no"<<endl;
 }
}
AnnaKol вне форума Ответить с цитированием
Старый 18.04.2013, 20:39   #4
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Если особо не вдумываться, то как-нибудь так можно

Код:
   char t[1000];

   cout << "Vvod posledovatelnosti" <<endl;

   cin >> t;

   if(t[0] >= 'A' && t[0] <= 'Z' || t[0] >= 'a' && t[0] <= 'z' || t[0] == '_')
   {
     for (int i = 1; t[i] != '\0'; i++)
       if (t[i] < '0' || t[i] > '9' && t[i] < 'A' || t[i] > 'Z' &&
           t[i] < 'a' || t[i] > 'z' && t[i] != '_')
          break;
     cout << "Id yes" << endl;
     system ("pause");
     return 0;
   }

   cout << "Id no" << endl;
   system ("pause");
   return -1;
А у Вас не будет работать программа, как Вы ожидаете.. Сначала 100 раз выведется фраза "Vvod posledovatelnosti", потом считается один символ, ну и дальше как повезет..
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 18.04.2013, 20:49   #5
AnnaKol
Пользователь
 
Регистрация: 19.11.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от alexander13 Посмотреть сообщение
Если особо не вдумываться, то как-нибудь так можно

Код:
   char t[1000];

   cout << "Vvod posledovatelnosti" <<endl;

   cin >> t;

   if(t[0] >= 'A' && t[0] <= 'Z' || t[0] >= 'a' && t[0] <= 'z' || t[0] == '_')
   {
     for (int i = 1; t[i] != '\0'; i++)
       if (t[i] < '0' || t[i] > '9' && t[i] < 'A' || t[i] > 'Z' &&
           t[i] < 'a' || t[i] > 'z' && t[i] != '_')
          break;
     cout << "Id yes" << endl;
     system ("pause");
     return 0;
   }

   cout << "Id no" << endl;
   system ("pause");
   return -1;
А у Вас не будет работать программа, как Вы ожидаете.. Сначала 100 раз выведется фраза "Vvod posledovatelnosti", потом считается один символ, ну и дальше как повезет..
А если у меня идет
Код:
char**t;
делаю так выдает кучу ошибок.
AnnaKol вне форума Ответить с цитированием
Старый 18.04.2013, 20:51   #6
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Цитата:
Сообщение от AnnaKol Посмотреть сообщение
А если у меня идет
Код:
char**t;
делаю так выдает кучу ошибок.
А что Вы вообще хотите этим сказать?
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 18.04.2013, 20:56   #7
AnnaKol
Пользователь
 
Регистрация: 19.11.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от alexander13 Посмотреть сообщение
А что Вы вообще хотите этим сказать?
ну если я делаю
Код:
char t[100]
то поэлементно ввожу данные а так
Код:
char**t
строки
выдает такие ошибки
error C2446: '>=' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '>=' : 'char *' differs in levels of indirection from 'int'
error C2446: '<=' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '<=' : 'char *' differs in levels of indirection from 'int'
error C2446: '>=' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '>=' : 'char *' differs in levels of indirection from 'int'
error C2446: '<=' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '<=' : 'char *' differs in levels of indirection from 'int'
error C2446: '==' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '==' : 'char *' differs in levels of indirection from 'int'
error C2446: '<' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '<' : 'char *' differs in levels of indirection from 'int'
error C2446: '>' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '>' : 'char *' differs in levels of indirection from 'int'
error C2446: '<' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '<' : 'char *' differs in levels of indirection from 'int'
error C2446: '>' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '>' : 'char *' differs in levels of indirection from 'int'
error C2446: '<' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '<' : 'char *' differs in levels of indirection from 'int'
error C2446: '>' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '>' : 'char *' differs in levels of indirection from 'int'
error C2446: '!=' : no conversion from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
error C2040: '!=' : 'char *' differs in levels of indirection from 'int'
AnnaKol вне форума Ответить с цитированием
Старый 18.04.2013, 20:58   #8
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Я не понимаю, в чем смысл..?
Как это - поэлементно?
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 18.04.2013, 21:01   #9
AnnaKol
Пользователь
 
Регистрация: 19.11.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от alexander13 Посмотреть сообщение
Я не понимаю, в чем смысл..?
Как это - поэлементно?
Vvod posledovatelnosti:
a (а не "aaaa" допустим)
Vvod posledovatelnosti:
b
Vvod posledovatelnosti:
c
AnnaKol вне форума Ответить с цитированием
Старый 18.04.2013, 21:04   #10
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Чем Вас не устраивает мой вариант? Вам надо вводить поэлементно или нет?
Или Вам надо проверить несколько идентификаторов? Или что Вы вообще хотите????
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
wc идентификатор не определен Sylar9 Win Api 10 06.04.2012 15:20
идентификатор в паскале drcoxer Паскаль, Turbo Pascal, PascalABC.NET 28 13.11.2011 14:22
Идентификатор строки eda Microsoft Office Excel 9 25.08.2009 21:56
Идентификатор в DBF mixer94 БД в Delphi 10 14.07.2009 13:56
Уникальный идентификатор romets Win Api 9 03.02.2008 02:30