КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функции для работы со строками
Указатели применимы только к целым числам и массивам целочисленных цифр. Это позволяет хранить в памяти косвенные адреса ячеек, которые по определению могут быть только целыми числами. Пример (тип переменной – целое число): #include <iostream> #include <windows.h> using namespace std; string Rus(string text) //установка вывода русского языка в строке { CharToOem((LPCTSTR)text.c_str(), (LPSTR)text.c_str()); return text;} int main() { int a; cout <<Rus("Введите целое число: "); cin>>a; int *address; address=&a; //указатель на адрес, где хранится a cout <<Rus("Число=")<<a<<Rus(" Адрес ячейки=")<<address<<endl; return 0; } Пример. Тип переменной – символ массива, строка введена заранее. #include <iostream>using namespace std;int main(){char str[] = "Hello, ivan!"; //объявляем символьный массивchar *b; //объявляем указатель на символb = &str[0]; //указатель b=0 указывает на 0-oй символ strcout << b<<endl; //выводим строку, начиная от 0 на экранstr[7] = 'I'; //присваиваем 7 элементу символ 'I'cout << b<<endl; //выводим строку, начиная от 0 на экранb=&str[7]; //указатель b=0 указывает на 7-oй символ strcout<<b<<endl; //выводим строку, начиная от 7 на экранcout<<str[11]; //выводим 11 литеру строки на экранreturn 0;}Пример. Тип переменной – символ массива, строка длиной не более 10 литер вводится пользователем, 11-ый и далее символы игнорируются. #include <iostream> #include <windows.h> #include <cstdio> //для функции gets() using namespace std; int main() { char a[10]; cout<<"Input a="; gets(a); //занесение 10 символов в массив a[0]-a[9] int i; for (i=0; i<=9; i=i+1) //Чтение массива a[10] {cout<<&a+i<<" "<<a[i]<<endl;} cout<<"**********************"<<endl; a[0]=65; //запись символа А в ячейку a[0] for (i=0; i<=9; i=i+1) //Чтение массива a[10] {cout<<&a+i<<" "<<a[i]<<endl;} return 0; } Имеется ряд функций для работы со строками. Некоторые из них приведены в табл.8.1. Табл.8.1. Функции для работы со строками
Пример: работа со строками. #include <iostream> #include <windows.h> // необходима для функции CharToOem #include <cstring> //включение библиотеки операций со строками #include <string> //включение библиотеки операций со строками using namespace std; string Rus(string text) //установка вывода русского языка в строке { CharToOem((LPCTSTR)text.c_str(), (LPSTR)text.c_str()); return text; } int main() { string str1, str2, frag; cout<< Rus ("Введите первую строку="); cin>>str1; cout<< Rus ("Введите вторую строку="); cin>>str2; cout<<endl; cout<< Rus ("1: Длина первой строки ")<<endl; cout<< Rus ("2: Сравнить строки строки ")<<endl; cout<< Rus ("3: Склеить строки")<<endl; cout<< Rus ("4: Добавить в конец первой строки ")<<endl; cout<< Rus ("5: Вставить в первую строку ")<<endl; cout<< Rus ("6: Заменить в первой строке ")<<endl; cout<< Rus ("7: Удалить из первой строки ")<<endl; cout<< Rus ("8: Показать символ первой строки ")<<endl; cout<<endl; int a=1, i, j; while (a!=0) { cin >>a; switch (a) { case 1: cout <<Rus("Длина строки=")<<str1.length()<<endl; cout <<endl; break; case 2: if (str1==str2) cout << Rus("Строки одинаковы!!!")<<endl; else cout << Rus("Строки разные!!!")<<endl; cout <<endl; break; case 3: str1=str1+str2; cout <<Rus("Результат = ")<<str1<<endl; cout <<endl; break; case 4: cout <<Rus("фрагмент "); cin>>frag; cout <<Rus("Результат = ")<<str1.append(frag)<<endl; cout <<endl; break; case 5: cout <<Rus("фрагмент "); cin>>frag; cout <<Rus("в позицию "); cin >>i; cout <<Rus("Результат = ")<<str1.insert(i, frag)<<endl; cout <<endl; break; case 6: cout <<Rus("после позиции "); cin >>i; cout <<Rus("число символов "); cin>>j; cout<<Rus("на "); cin>>frag; cout <<Rus("Результат = ")<<str1.replace(i, j, frag)<<endl; cout <<endl; break; case 7: cout <<Rus("после позиции "); cin >>i; cout <<Rus("число символов "); cin >>j; cout <<Rus("Результат = ")<<str1.erase(i,j)<<endl; cout <<endl; break; case 8: cout <<Rus("на позиции "); cin>>i; cout <<Rus("Результат = ")<<str1.at(i)<<endl; cout <<endl; default: a=false; } } return 0; } Задание 1. Выполнить лабораторную работу 8 (Работа со строками). Задание 2. Выполнить лабораторную работу 8а (Работа со строками).
Дата добавления: 2014-11-25; Просмотров: 416; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |