N文字を含む文字列があります.この文字列のm番目の文字から始まるすべての文字を別の文字列にコピーする関数を書きます.


#include
#include
#include//          malloc   realloc  。

int main()
{
	void copy_s(char *P1, char *p2, int m);//       
	char *p1, *p2, ch; //p1     ,p2        
	int i = 0, m;  //i            ,m              
	p1 = (char *)malloc(2 * sizeof(char)); //    p1      ,    ,
                                                //              
	printf("       :");
	ch = getchar();   //            ch;
	while (ch != 10)  //      ,         p1        ,     ASC  10
	{
		*(p1 + i) = ch;      //             。
		p1 = realloc(p1, 3 + i); //       ,      。
		ch = getchar();  
		i++;    //     ,   1,         1
	}
	*(p1 + i)='\0';  //          ,         。
	printf("            :");  //            。
	scanf("%d", &m);
	p2 = (char *)malloc((i+2) * sizeof(char)); //               ,  p2   。
	copy_s(p1, p2, m);//       。
	puts(p1); //     p1,    
	putchar('
'); puts(p2);// p2 putchar('
'); return 0; } void copy_s(char *p1, char *p2, int m) { int i=0;// p2 while (*(p1 + m - 1 )!= '\0')// p1 , 。 { *(p2 + i) = *(p1 + m - 1);// p1 p2 。 i++; // m++; } *(p2 + i) = '\0';// , 。 }