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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2009, 18:14   #1
Sudeki
 
Регистрация: 17.11.2009
Сообщений: 9
Восклицание Ввести несколько строк и проверить, может ли этот текст быть классом

Всем привет. Помогите плиз доделать задачку,нужно исправить программку так чтобы она была с указателями и оператором new.

Задание: Ввести несколько строк и проверить, может ли этот текст быть классом. Проверять только наличие слова class , фигурных скобок в начале и конце, точки с запятой в конце. Программа должна выдавать одно из двух сообщений:
"текст не может быть классом " или
" возможно, что текст является классом, но нужна дальнейшая проверка ".

Код C++

Код:
#include <vector>
#include <iostream>
#include <string>
int main()
{
        const int n = 10;
        std::vector<std::string>vec(n);
        for (size_t i = 0 ; i < n ; i++)
                std::cin>>vec[i];
        if ((vec[0]=="class") && (vec[1]=="{") && (vec[vec.size()-1]=="};"))
                std::cout<<"may be class"<<std::endl;
        else
                std::cout<<"no"<<std::endl;
        return 0;
}
Заранее благодарю)

Последний раз редактировалось Stilet; 26.11.2009 в 09:04.
Sudeki вне форума Ответить с цитированием
Старый 25.11.2009, 21:05   #2
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

Поблагодари папку, который сделал все за тебя =)
Код:
int main(int argc, char* argv[])
{
	char temp[5012];
	cin.getline(temp,5012);
	string str = temp;
	int pos = str.find("class");
	if (pos > -1)
	{
		int found = false;
		str.erase(0,pos);
		int len = str.length();
		for (int i=5;i<len;i++)
		{
			if (str[i] == '{')
			{
				found = i;
				break;
			}
			if (str[i] != '{' & str[i] !='\r' & str[i] != '\n' & str [i] != 32)
			{
				break;
			}
		}
		if (found)
		{
			pos = str.find("};",found);
			if (pos > -1)
			{
				cout << "yes" << endl;
			}
		}
	}
	cout << "no" << endl;
	return 0;
}
lennon вне форума Ответить с цитированием
Старый 26.11.2009, 22:31   #3
Sudeki
 
Регистрация: 17.11.2009
Сообщений: 9
По умолчанию

Спасибо огромное ДРУЖИЩЕ!!!))
Sudeki вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как такое может быть??? lennon Общие вопросы C/C++ 4 21.10.2009 03:10
Может быть так, что в мамку может попасть вирус и не загружать жесткий диск Berzhan Операционные системы общие вопросы 6 27.07.2009 21:40
ввести и вывести текст limiry Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 12.05.2009 13:27
Что такое может быть? vasek123 Свободное общение 3 14.04.2009 19:13