|
|||
Пример 6. ⇐ ПредыдущаяСтр 4 из 4 Пример 6. intlen; cout<<"Введитестроку"<<endl; char str1[8], *str2; gets(str1); len=strlen(str1); // определение длины строки str2=newchar[len+1]; //динамическое выделение памяти под строку str2 strcpy(str2,str1); cout<<"Строка 1: "<<str1<<endl; cout<<"Строка 2: "<<str2<<endl; delete []str2; // удаление строк из памяти
Ниже перечислены некоторые функции для работы со строками из библиотеки string.h: Strncat (r1,r2,n) – к переменной r1 добавляет первых n символов строки r2 Strcpy (r1,r2) – копирует символи из строки r2 в строку r1 Strncpy (r1,r2,n) – копирует первых n символов строки r2 в строку r1 Strchr (r1, <символ>) – определяет первое вхождение данного символа в строку r1. Strrchr (r1,<символ>) – определяет последнее место заданного символа в строке Strspn (r1,r2) – определяет номер первого символа, который входит в строку r1, но не входит в строку r2. Strstr (r1,r2) – определяет в строке r1 подстроку, которая начинается с первого вхождения строки r2 в сроку r1. Strtok (r1,r2) – определяет часть строки r1, которая заканчивается перед первым одинаковым символом в строках r1 и r2 Strnset (r1,<символ>,n) – вставляет n раз заданный символ перед строкой r1 Strupr (r1) – превращает все маленькие буквы в Большие Strlwr (r1) – превращает все большие буквы в маленькие Strrev (r1) – записывает строку в обратном порядке Strcmp (r1,r2) – сравнивает строки символов r1 и r2, с учетом регистра для латинских букв Stricmp (r1,r2) – сравнивает строки r1 и r2, не различая регистра букв.
Пример 7. Написать программу, которая определяет количество букв к в стихотворении без использования функций для работы со строками. #include <iostream.h> int _tmain(intargc, _TCHAR* argv[]) { SetConsoleCP(1251); SetConsoleOutputCP(1251); char s1[2][20]; cout<<"Введитестихотворение"<<endl; for (int i = 0; i<2; i++) { gets(s1[i]); cout<<endl; } cout<<"Введитебукву: "; charbukva; cin>>bukva;
intkol; int l; for (int i = 0; i<2; i++) { kol=0; l=strlen(s1[i]); for (int j = 0; j<l; j++){ if (s1[i][j]==bukva) kol++; } cout<<"Количество букв "<<bukva<<" в строке "<<i+1<<": "<<kol<<endl; } system("pause"); return 0; }
Пример 8. Написать функцию, для создания копии строки. #include <iostream.h> char* cop(char *s11) { char* s22=new char[strlen(s11)+1]; for (int i = 0; i <strlen(s11); i++) { s22[i]=s11[i]; } return s22; } int _tmain(intargc, _TCHAR* argv[]) { SetConsoleCP(1251); SetConsoleOutputCP(1251); char *s1; cout<<"Введитестроку"<<endl; s1=new char[20]; gets(s1); cout<<"Копиястроки: "<<cop(s1); system("pause"); return 0; }
Решить самостоятельно: 1. Заменить в заданной строке все буквы Ch1 на Ch2 (их значения вводить с клавиатуры). 2. В заданной строке удвоить каждое вхождение буквы Ch. 3. Дана последовательность слов. Напечатать все слова, отличные от слова «hello”. 4. В заданной строке после каждой буквы Ch вставить строку Str1.
|
|||
|