464.39K
Категория: ПрограммированиеПрограммирование

Строки в языке программирования C++

1.

СТРОКИ В ЯЗЫКЕ
ПРОГРАММИРОВАНИЯ C++
ВЫПОЛНИЛ:
ЕГОРОВ НИКОЛАЙ ИВАНОВИЧ

2.

ПОНЯТИЕ СТРОКИ, ОПИСАНИЕ И
ИНИЦИАЛИЗАЦИЯ СТРОК
• Строка представляет собой массив символов, заканчивающийся нульсимволом – символом с кодом 0 (‘\0’). Длина строки равна количеству
символов, расположенных до нуль-символа. При резервировании
памяти под строку необходимо выделить количество байт на один
больше, чем максимальная длина строки.
• Описание строки: char <имя_строки> [число_элементов];
• Инициализация строк происходит так же, как и инициализация
одномерного массива: char str1[4] = (‘H’, ‘e’, ‘l’, ‘\0’); char str1[4] = “Hel”;

3.

СТАНДАРТНЫЕ ФУНКЦИИ ОБРАБОТКИ СТРОК
• Все стандартные функции для работы со строками находятся в
библиотеке string.h.
• Наиболее часто используемые функции для работы со строками:
• int strlen(char *s) – определяет длину строки s, возвращает количество
символов в строке, включая нуль-символ (‘\0’);
• char *strcpy(char *dst, const char *src) – копирует строку src в строку dst,
возвращает указатель dst;
• char *strcat (char *s1, char *s2) – присоединяет строку s2 в конец строки
s1, возвращает указатель на объединенную строку s1.

4.

СТАНДАРТНЫЕ ФУНКЦИИ ОБРАБОТКИ СТРОК
(ПРОДОЛЖЕНИЕ)
• int strcmp (char *s1, char *s2) – сравнивает две строки s1 и s2,
возвращает значение, полученное путем вычитания первых
несовпадающих символов из s1 и s2.
• char *strchr(char *s, int c) – находит в строке s первое вхождение символа
c, возвращает указатель на этот символ.
• int strcspn(char *s1, char *s2) – находит длину отрезка строки s1,
содержащего символы, не входящие в множество символов строки s2.

5.

ПРИМЕР
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char text1[81], text2[20], *ps, c;
int j;
cout<< “Введите строку 1”<<endl;
cin>>text1;
cout<<endl<<“Введите строку 2”<<endl;
cin>>text2;
cout<< endl;
j = strcmp(text1, text2);
if(j==0) cout<<“Совпадают”<<endl;
if(j<0) cout<<“1 < 2”<<endl;
if(j>0) cout<<“1 > 2”<<endl;
if (strlen(text1)+strlen(text2)+1 < 81)
{
strcat(text1, text2);
cout<<text1<<endl;
}
c = text1[0];
ps = strchr(text2, c); // ps-text2+1 – номер
// позиции символа c в строке text2.
if(ps)
{
cout<<c<<“ в строке text2 на позиции номер
”<<ps-text2+1<<endl;
}
else
{
cout <<c<<“ нет в строке text2”<<endl;
}
strcpy(text1, text2);
cout<<text1<<endl;
return 0;
}

6.

ДОМАШНЕЕ ЗАДАНИЕ
• С клавиатуры ввести предложение из нескольких слов, разделенных
одним пробелом. Написать функцию, вычисляющую количество слов в
предложении.
• С клавиатуры ввести последовательность символов, не содержащих
пробелов. Вывести эту последовательность символов в обратном
порядке (“мама” – “амам”).
English     Русский Правила