Тема: Поясніть будь ласка
Є программа -
1.
{
system("chcp 1251");
printf("Речення: \n");
char a[101] = "мдя ежс кек т з ок ес ";
printf("Речення без першого словосполучення ЕЖС : \n");
// gets(a);
if(p1(a, "ежс"))
printf("Входжень буквосполучень 'ЕЖС' не знайдено ");
printf("%s\n ", a);
printf("Речення із заміненим буквосполученням Т на ДЮЕ : \n");
//gets(b);
if(p2(a, "т", "дюе"))
printf("Входжень буквосполучень Т не знайдено ");
printf("%s\n", a);
printf("Скопійовані 6 символи з рядка S після першої З в рядок X : \n");
if(p3(a, "з", x))
printf("Входжень букви ч не знайдено ");
printf("%s\n ",x);
if(p4(a, "ес", "їжє"))
printf("В реченні немає буквосполучення 'ес'.");
else
printf("\nРечення з заміненими 'ес' на 'їжє': %s", a);
return 0;
}
2.
int strdel(char *str, int z, int k) {
if(z < 0) return -1;
if(k < 0) return -2;
int len = strlen(str);
int m = z + k;
if(z < len) {
if(m >= len)
str[z] = 0;
else
strcpy(str + z, str + m);
}
return 0;
}
int strins(char *s1, const char *s2, int n) {
int len1 = strlen(s1);
if(n > len1 || n < 0)
return -1;
int len2 = strlen(s2);
int i;
for(i = len1; i >= n; i--)
s1[i + len2] = s1[i];
strncpy(s1 + n, s2, len2);
3.
int strdel(char *str, int z, int k);
int strins(char *s1, const char *s2, int n);
int p3(char *c, const char *d, char *x);
int p4(char *S, const char *ed, const char *sh);
4.
int p1(char *a, const char *b) {
char *p = strstr(a, b);
if(p == 0)
return 1;
else {
strdel(p, 0, 3);
return 0;
}
}
int p2(char *b, const char *n, const char *q) {
char *m = strstr(b, n);
if(m == 0)
return 1;
else {
strdel(m, 0, strlen(n));
strins(m, q, 0);
return 0;
}
}
int p3(char *c, const char *d, char *x) {
char *ch = strstr(c, d);
if(ch == 0)
return 1;
else {
strncpy(x, ch + 1, 6);
x[6] = 0;
return 0;
5.
#ifndef PUNKT_H_INCLUDED
#define PUNKT_H_INCLUDED
int p1(char *a, const char *b);
int p2(char *b, const char *n, const char *q);
#endif // PUNKT_H_INCLUDED
Завдання-
1.Реалізувати вказану у Вашому варіанті функцію.
2. В функції main() використати цю функцію при обчисленні вказаного у Вашому варіанті виразу.
3. Функція має бути визначеною після функції main().
Поясніть що роблять ці строки-
1.
strncpy(s1+n,s2,len2)
і що таке strncpy
2.
#ifndef DELINS_H_INCLUDED
#define DELINS_H_INCLUDED
#endif //DELINS_H_INCLUDED
3.
strins(m,q,0);
що це робить?
Дякую