![]()
|
|||||||
size_t strcspn(const char *s1, const char *s2) ; ⇐ ПредыдущаяСтр 3 из 3 size_t strcspn(const char *s1, const char *s2) ; Определяет и возвращает длину начального сегмента строки s1, содержащего только те символы, которые не входят в s2. char * strpbrk(const char *s1, const char *s2); Находит в строке s1 позицию первого вхождения любого из символов строки s2. Если символ из строки найден, возвращается указатель на этот символов строке s1, иначе возвращается NULL. char * strrchr(const char *s, int c) ; Находит позицию последнего вхождения символа c в строку s. Если c найден, функция возвращает указатель на этот символ, иначе возвращается NULL. char * strstr(const char *s1, const char *s2) ; Находит позицию первого вхождения строки s2 в строку s1. Если подстрока найдена, функция возвращает указатель подстроки в строке s1, иначе возвращается NULL.
Сегодня вы познакомитесь со строками в с++ и научитесь немного их обрабатывать. Строки в с++ позволяют нам работать с символьными данными. Благодаря ним мы можем читать с клавиатуры текст, как-то его обрабатывать и затем, например, снова его выводить в консоль. В С++ существует 2 типа строк. Первый из них - это массив переменных типа char. Если кто не помнит, то переменная типа char хранит в себе 1 символ. Размер такой строки равняется размеру массива - 1, т.к. последний элемент содержит NULL (пустая переменная без значения), который обозначает символ конца строки. Например: char name[50]; cin>>name; cout<<"Hello "<<name<<endl; Второй из вариантов, более удобный - это специальный класс string Для его работы необходимо в начале программы подключить заголовочный файл string: #include <string> В отличии от типа char, string является классом. Более подробно об классах я расскажу позднее, сейчас вам достаточно знать, что классы содержат в себе сразу несколько вещей: переменные, константы и функции для работы с переменными. Это достаточно грубое объяснение, но на первое время вам хватит. Для создания строки вам необходимо в начале программы написать using namespace std; Теперь чтоб создать строку достаточно написать: string s; Для записи в строку можно использовать оператор = s="Hello"; Пример работы с классом string: string name; cout<<"Enter your name"<<endl; cin>>name; cout<<"Hi "<<s<<"!"<<endl; Но пока вы воспользовались только одной прелестью строк: отсутствием необходимости задавать ее размер. Но кроме этого существует множество функций для работы со строками.
Вот собственно большинство необходимых функция для работы со строками в с++. Набор достаточно неплохой, больше вам пока не понадобится (Я лично пока и этот набор не выучил;)) Теперь немного примеров и затем практика. Постарайтесь сами понять, что делает каждый пример
string name,surname,text,fullname,s1,s2,s3,user; user="Petya Petrov"; cout<<"Enter your name"<<endl; cin>>name; cout<<"Enter your surname"<<endl; cin>>surname; fullname=name; fullname+=" "; // добавляем пробел fullname.append(surname); if (fullname.compare(user)==0) // <=> if (!(fullname.compare(user))) cout<<"Your are good user"<<endl; else cout<<"Bad user"<<endl; cout<<"enter s1"<<endl; cin>>s1; cout<<"enter s2"<<endl; cin>>s2; s1.swap(s2); cout<"new s1: "<<s1<<endl<<"new s2: "<<s2<<endl; cout<<"Enter big text with your name"<<endl; cin>>text; int i=0; i=text.find("name"); while (i!=-1) { text.replace(i,name.length(),name); s3=text.substr(i,name.length()); cout<<"Replaced: "<<s3<<endl; i=text.find("name"); } cout<<"New text:"<<endl<<text<<endl; text.clear(); cout<<"text: "<<text<<endl;
Вот собственно небольшой кусок программы, работающий со строками и непонятно что делающей. Ну а теперь, как всегда, немного практики;) (Хотя вполне возможно для новичков весь вышеизложенный текст и так вынос мозга и они уже в отрубе;)) Задачи для строк типа char:
Задачи для строк типа string:
|
|||||||
|