Хелпикс

Главная

Контакты

Случайная статья





Пример 6.



Пример 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.

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.