Написать аналог copy из Pascal

Staier

задали на дом написать прогу на с++ делающую тоже самое как на паскале copy, для проверки пытаюсь вывести скопированный фрагмент слова
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define _CRT_SECURE_NO_WARNINGS
void main(){
    char s[20];char s2[20];int a;int b;int k;int i;int x;int d;
    scanf("%s%i%i",&s,&a,&b);
    k=1;
    d=0;
    for (i=a;a<=b;a++){strcat((s2+d),(s+a));d++;};
    x=strlen(s2);
    s2[x]=0;
    for (i=0;i<=x;i++){printf("%",*(s2+i));};
    getch();
}
выполняю ввожу строку ввожу с какого символа копировать по какой включительно и ничего не выводитвот изменил и выводит вобще слово количество раз равное разности чисел с какого по какой копировать почему вообще ничего не понимаю
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define _CRT_SECURE_NO_WARNINGS
void main(){
    char s[20];char s2[20];int a;int b;int k;int i;int x;int d;
    scanf("%s%i%i",&s,&a,&b);
    k=1;
    d=0;
    for (i=a;a<=b;a++){strcat((s2+d),(s+a));d++;};
    x=strlen(s2);
    s2[x]=0;
    printf("%s",s2);
    getch();
}
вот отредактировал и он выводит почемуто всю строку которую я ввел
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define _CRT_SECURE_NO_WARNINGS
void main(){
    char s[20];char s2[20];int a;int b;int k;int i;int x;int d;
    scanf("%s%i%i",&s,&a,&b);
    k=1;
    d=0;
    for (i=a;a<=b;a++){strcpy((s2+d),(s+a));d++;};
    x=strlen(s2);
    s2[x]=0;
    printf("%s",s2);
    getch();
}
1 ответ

Staier

можно вот такой вариант использовать - разбиваешь строку на части,и копируешь нужные части в переменную присваиванием. например char s[20]; char r; r=s[15]; P.S такой вариант хорош тем,что не нужно использовать дополнителные библиотеки,что существенно экономит размер и скорость выполнения программы,что кстати не особо актуально нынче