Операция вывода показывает как используется
Операция вывода показывает как используется счетчик числа ссылок. Она сопровождает как эхо каждую введенную строку (ввод происходит с помощью операции << , приведенной ниже):
ostream& operator<<(ostream& s, const string& x) { return s << x.p->s << " [" << x.p->n << "]\n"; }
Операция ввода происходит с помощью стандартной функции ввода символьной строки (§10.3.1):
istream& operator>>(istream& s, string& x) { char buf[256]; s >> buf; // ненадежно: возможно переполнение buf // правильное решение см. в §10.3.1 x = buf; cout << "echo: " << x << '\n'; return s; }
Операция индексации нужна для доступа к отдельным символам. Индекс контролируется:
void error(const char* p) { cerr << p << '\n'; exit(1); }
char& string::operator[](int i) { if (i<0 || strlen(p->s)<i) error("недопустимое значение индекса"); return p->s[i]; }
В основной программе просто даны несколько примеров применения строковых операций. Слова из входного потока читаются в строки, а затем строки печатаются. Это продолжается до тех пор, пока не будет обнаружена строка done, или закончатся строки для записи слов, или закончится входной поток. Затем печатаются все строки в обратном порядке и программа завершается.
int main() { string x[100]; int n;
cout << " здесь начало \n";
for ( n = 0; cin>>x[n]; n++) { if (n==100) { error("слишком много слов"); return 99; } string y; cout << (y = x[n]); if (y == "done") break;
} cout << "теперь мы идем по словам в обратном порядке \n"; for (int i=n-1; 0<=i; i--) cout << x[i]; return 0; }
on_load_lecture()
|
|
Дальше »
|
|
Если Вы заметили ошибку - сообщите нам. |
|
Страницы:
« |
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
вопросы | »
|
|
учебники
|
для печати и PDA
|
|
|
|
Курсы | Учебные программы | Учебники | Новости | Форум | Помощь
Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru
© 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование
|
Содержание Назад Вперед