Строки. Программирование

Содержание

Слайд 2

План:

1.Что такое строка?
2.Статическая строка.
3.Диномическая строка.
4.Примеры.

План: 1.Что такое строка? 2.Статическая строка. 3.Диномическая строка. 4.Примеры.

Слайд 3

1.Что такое строка?
Строка – это набор символов
представляются как массивы элементов типа
char, заканчивающиеся

1.Что такое строка? Строка – это набор символов представляются как массивы элементов
нуль символом ’\0’
Не путать строку с одномерным
символьным массивом.

!


Слайд 4

Память под строку выделяет приблизительно,
как правило, размер реально введенной
строки не совпадает с

Память под строку выделяет приблизительно, как правило, размер реально введенной строки не
объемом
выделенной памяти. Часто
приходится вычислять
реальный размер строки.
Благодаря наличию
множество стандартных функций
со старкой работаем как с
единым целым.

Слайд 5

2.Статические строки
1)Как объявить статическую строку?
а)const int N=80; // размер строки, объем

2.Статические строки 1)Как объявить статическую строку? а)const int N=80; // размер строки,

выделенной памяти
б)char str [N]; // строка 80 символов
в)char str [N]=”Hello!”; // инициализированная
строка
i 0 1 2 3 4…
адрес str1

Слайд 6

2)Как определить адрес строки?(адрес
первого символа).
Имя статической строки- константный
адрес строки.
3)Как определить адрес

2)Как определить адрес строки?(адрес первого символа). Имя статической строки- константный адрес строки.
любого символа
строки?
str+i, где i=0,1,…

Слайд 7

4)Как обратится к любому символу строки
а)str[i]
значение символов с
индексом i, где i=0,1…
б)*(str+i)

4)Как обратится к любому символу строки а)str[i] значение символов с индексом i, где i=0,1… б)*(str+i)

Слайд 8

3.Диномическая строка
1)Как объявить строку?
а)const int N=80;
или
б)int N;
cin>>N;
char *p=new

3.Диномическая строка 1)Как объявить строку? а)const int N=80; или б)int N; cin>>N;
char [N]; адрес 1 символа
строки
- - - - - - - - - -
delete[ ]p; // освободить динамическую
память

Слайд 9

2)Как определить адрес динамической строки?
Операция new возвращает в память первого
байта первого символа

2)Как определить адрес динамической строки? Операция new возвращает в память первого байта
( в нашем случае p )
3)Как определить адрес произвольного символа
строки?
p+i // адрес с индексом i

Слайд 10

4)Как определить значение произвольного
символа строки?
a)p[i]
значение символа с
индексом i
б)*(p+i)

4)Как определить значение произвольного символа строки? a)p[i] значение символа с индексом i б)*(p+i)

Слайд 11

При работе со строкой как с единым
Целым необходимо указывать имя или

При работе со строкой как с единым Целым необходимо указывать имя или
адрес
строки, что в сущности одно и то же.
Массив необходимо для удобной и
единообразной обработки каждого символа в
строке.

Слайд 12

4.Примеры.
Стандартный цикл перебора строки на основе
индекса:
char str[80];
int i; // переменная цикла
for(i=0;str[i]!=0;i++)
{
str

4.Примеры. Стандартный цикл перебора строки на основе индекса: char str[80]; int i;
[i]//как обратится к символу
строки с индексом i
}

Слайд 13

Задача 1
Дана строка. Определить ее реальный размер.
int main (void)
{
const int N=80;
char str

Задача 1 Дана строка. Определить ее реальный размер. int main (void) {
[N];
int i; kol=0;
cout<<”\n строка: “;
cin.getlline (str, N);
for(i=0;str[i];i++)
{
kol++;
}
cout<<”\n Kol= “ << kol <return 0;
}

Слайд 14

Задача 2
#include
#include
using namespace std;
int main (void)
{
const int N=80;
char *pBegin1,

Задача 2 #include #include using namespace std; int main (void) { const
*pBegin2, *p1, *p2;
pBegin1=new char [N];
pBegin2=new char [N/2];
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
cout << "\n Строки:\n";
cin.getline (pBegin1, N/2);
cin.getline (pBegin2, N/2);
for(p1=pBegin1; *p1!=0; p1++)
;
for(p2=pBegin2; *p2!=0; p2++)
{
*p1=*p2;
p1++;
}
*p1=0;
cout<return 0;
}