Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 08 / README.md
blob: e3bf8b287a2790cfc5938b2f002f5ab51b56dcc5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Указатели. Символни низове.

## Въведение в указателите.

   ```c++
   int arr[] = {1, 2, 3};
int* ptr = arr;
```

![enter image description here](https://i.ibb.co/cDcX8st/Untitled-Diagram-drawio-3.png)
   ```c++
	ptr++;
	cout << ptr[0]; //2;
	cout << ptr[1]; //3;
```

 ![enter image description here](https://i.ibb.co/xLLsVK5/Untitled-Diagram-drawio-4.png)

## Въведение в символните низове (стрингове).

   ```c++
	char str[] = {'t', 'e', 's', 't', '\0'};
	char str2[] = "test"; //equivalent to str
	char str3[7] = "test"; 
```

![enter image description here](https://i.ibb.co/ZmRwt6R/Untitled-Diagram-drawio-5.png)

Примерна имплементация на:

 - strlen (намиране на дължина на стринг)
 - strcpy (копиране на стринг)
 - strcat (конкатениране на стрингове)
 - strcmp (лексикографско сравнение на стрингове)
 - atoi (преобразуване на стринг в число)
 - търсене в текст
 - броене на срещанията на конкретен символ в текст
 - заместване в стринг.

<h3>Задачи</h3>

**Задача 1:** Напишете функция, която приема 3 стринга - text, where и what и земства в text всяко срещане на where с what.

*Да се реши без допълнителна памет (in-place).*

*Вход: "I am the best of the best", "best" , "worst" , Изход: "I am the worst of the worst"*

**Задача 2** Напишете функции toUpper и toLower, които приемат стринг и променят всички главни букви в малки/всички малки букви в главни.

**Задача 3** Напишете функция, която приема стринг и връща броя на думите в него. (Думите са разделени с произволен брой интервали, табулации и препинателни знаци)

*Вход: "Me? Why always me?, Изход: 4*


**Задача 4** Напишете функция, която приема стринг и връща най-често срещаната дума.(Думите са разделени с произволен брой интервали, табулации и препинателни знаци). Игнорираме разликата между главни и малки букви за задачата.

*Вход: "Me? Why always me?, Изход: me*

**Задача 5** Напишете функция, която приема стринг и връща лексикографско най-малка дума.

*Вход: "Me? Why always me?, Изход: always*