Написать функцию вставки в строку S подстроки S1 с позиции n, используя указатели - C (СИ)
Формулировка задачи:
Помогите, пожалуйста написать функцию вставки в строку S подстроки S1 с позиции n, используя указатели. Язык Си, компилятор турбо си. Пожалуйста очень нужно!
Решение задачи: «Написать функцию вставки в строку S подстроки S1 с позиции n, используя указатели»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
void ins(char *s,char *s1,int t)
{
char tmp[255];
int i,j;
for (i = t,j = 0;i<255;i++,j++) {
tmp[j] = s[i];
}
for (i = t,j = 0;i<255;i++,j++)
s[i] = s1[j];
for (i = (t+strlen(s1)),j = 0;i<255;i++,j++)
s[i] = tmp[j];
}
int main()
{
char s[255], s1[80];
for (int i = 0;i<255;i++)
s[i] = '\0';
int n=5;
printf("введите s\n");
scanf("%s", s);
printf("введите s1\n");
scanf("%s1 ",s1);
printf("введите n\n");
fscanf(stdin,"%d", &n);
ins(s,s1,(n-1));
printf("%s\n",s);
return 0;
}
Объяснение кода листинга программы
- В функции ins происходит вставка подстроки s1 в строку s с позиции t.
- В функции main создается пустая строка s, в которую затем считывается исходная строка.
- Также в функции main создается подстрока s1, в которую затем считывается подстрока для вставки.
- Пользователю предлагается ввести номер позиции для вставки подстроки.
- Функция ins вызывает функцию scanf для ввода строки s и s1, а также целого числа n.
- Функция ins использует массив tmp для сохранения символов строки s, начиная с позиции t.
- Затем функция ins заменяет символы в строке s, начиная с позиции t, на символы подстроки s1.
- После этого функция ins заменяет символы в строке s, начиная с позиции t+strlen(s1), на символы из массива tmp.
- В конце функции main выводится измененная строка s.
- Возвращаемое значение функции main равно 0, что означает успешное выполнение программы.