-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLAB_04_support.cpp
More file actions
159 lines (138 loc) · 3.85 KB
/
Copy pathLAB_04_support.cpp
File metadata and controls
159 lines (138 loc) · 3.85 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
// Ïîäêëþ÷åíèå áàçîâûå è ìàòåìàòè÷åñêèå áèáëèîòåêè
#include <stdio.h>
#include <process.h>
#include <stdlib.h>
#include <math.h>
// Ïîäêëþ÷åíèå áèáëèîòåêè äëÿ âûïîëíåíèÿ ôóíêöèè ñî ñòðîêàìè
#include <string.h>
//#include "header.h"
#pragma warning(disable : 4996)
/*Ñïðîåêòèðîâàòü, ðåàëèçîâàòü è îòëàäèòü ôóíêöèþ âûáîðà ïîäñòðîêè èç ñòðîêè.
 êà÷åñòâå ïàðàìåòðîâ óêàçûâàþòñÿ: èñõîäíàÿ ñòðîêà, íà÷àëüíûé ñèìâîë, ÷èñëî ñèìâîëîâ.
Ïðåäóñìîòðåòü âàðèàíò ôóíêöèè ñ 3-ìÿ è 4-ìÿ ïàðàìåòðàìè
(Ïîñëåäíèé çàäàåò óêàçàòåëü ïîäñòðîêè).
ïðåäóñìîòðåòü ïîëíûé êîíòðîëü âõîäíûõ ïàðàìåòðîâ.
Ïðîäåìîíñòðèðîâàòü åå èñïîëüçîâàíèå â ðàçëè÷íûõ ðåæèìàõ.
Ôóíêöèþ îïèñàòü â îòäåëüíîì çàãîëîâî÷íîì ôàéëå è èñïîëüçîâàòü
ïðîòîòèï â îñíîâíîé ïðîãðàììå.*/
void SubString(char* string, char* inital_string, int* count_string)
{
char MAX_STRING[100] = "";
/*
char* strncat(char* destptr, char* srcptr, size_t num);
Ïàðàìåòðû:
destptr
Óêàçàòåëü íà ñòðîêó íàçíà÷åíèÿ, êîòîðàÿ áóäåò ñîäåðæàòü ðåçóëüòàò êîíêàòåíàöèè ñòðîê, âêëþ÷àÿ ñèìâîë çàâåðøåíèÿ ñòðîêè.
srcptr
Còðîêà, èç êîòîðîé áóäóò êîïèðîâàòüñÿ ïåðâûå num ñèìâîëîâ äëÿ êîíêàòåíàöèè.
num
Ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ äëÿ êîíêàòåíàöèè.
*/
strncat(inital_string, string, 1);
*count_string = strlen(string);
}
void SwapString(char* string_1, char* string_2)
{
int size;
strlen(string_1) > strlen(string_2) ? size = strlen(string_1) : size = strlen(string_2);
// Ñîçäàåò äèíàìè÷åñêóþ ñòðîêó äëÿ óñòàíîâêè ìàêñèìàëüíîãî ðàçìåðà ñòðîêè
char* tmp = (char*)calloc(size, sizeof(char));
strcpy(tmp, string_1);
strcpy(string_1, string_2);
strcpy(string_2, tmp);
}
void SwapString_Alphafit(char* string)
{
int size = strlen(string);
// Ñîçäàåò äèíàìè÷åñêóþ ñòðîêó
//char* tmp = (char*)calloc(size, sizeof(char));
char tmp;
for (int i = 0; i < size - 1; i++)
{
for (int j = 0; j < size - 1; j++)
{
if (string[j] > string[j + 1])
{
tmp = string[j];
string[j] = string[j + 1];
string[j + 1] = tmp;
}
}
}
}
void string_sorting_and_swap(char* S1, char* S2)
{
char TempStr[20];
strcpy(TempStr, S1);
strcpy(S1, S2);
strcpy(S2, TempStr);
}
void minimum_strlen(char** S, int* MIN_NUM, char* MIN_STR)
{
for (int i = 0; i < strlen(S[i]); i++)
{
*MIN_NUM = strlen(&S[i][0]);
// Íàõîæäåíèå ìèíèìàëüíîé äëèíû ñòðîêè
//minimum_strlen(&pStrArray[i][0], &MIN_NUM, MIN_STR);
for (int j = 1; j < *MIN_NUM; j++)
if (strlen(&S[j][0]) < *MIN_NUM)
{
*MIN_NUM = strlen(&S[j][0]);
strcpy(MIN_STR, &S[j][0]);
}
}
}
void string_strtok(char* string)
{
// Óêàçàòåëü íà ìàññèâ ïîäñòðîê
char* token;
// Äîïóñòèìûå ðàçäåëèòåëè ðàçäåëèòåëè: (ïðîáåë, çàïÿòàÿ, òàáóëÿöèÿ è // êîíåö ñòðîêè)
char seps[] = " ,\t\n";
// Ïîëó÷åíèå ïåðâîé ïîäñòðîêè:
token = strtok(string, seps);
// ïðîâåðêà íàëè÷èÿ íîâûõ ïîäñòðîê
while (token != NULL)
{
// Âûâîä ïîäñòðîê â öèêëå
printf(" %s\n", token);
// Íîâàÿ ïîäñòðîêà :
token = strtok(NULL, seps);
}
}
void check_strncmp(char** pStrArray, int size)
{
int length, IF;
printf("Ââåäèòå äëèíó ñëîâà ñîâïàäàþùèõ: ");
scanf_s("%d", &length);
printf("\n");
for (int j = 0; j < size - j; j++)
{
for (int i = 0; i < size - 1; i++)
{
IF = strncmp(&pStrArray[j][0], &pStrArray[i + 1][0], length);
if (IF == 0)
printf("Ñòðîêà èäåíòè÷íû\n%s = %s\n", &pStrArray[j][0], &pStrArray[i + 1][0]);
else
printf("Ñòðîêà íå èäåíòè÷íû\n%s != %s\n", &pStrArray[j][0], &pStrArray[i + 1][0]);
}
printf("\n");
}
}
void DSwapString(char** pStrArray, int size_array_string)
{
char tmp[100];
for (int i = 0; i < size_array_string - 1; i++)
{
for (int j = 0; j < size_array_string - 1; j++)
{
if (strcmp(&pStrArray[j][0], &pStrArray[j + 1][0]) > 0)
{
strcpy(tmp, &pStrArray[j][0]);
strcpy(&pStrArray[j][0], &pStrArray[j + 1][0]);
strcpy(&pStrArray[j + 1][0], tmp);
//printf("Öèêë i = %d; j = %d\n¹%d ñëîâî: %s\n", i, j, i, &pStrArray[j][0]);
}
}
//printf("\n");
}
}