N文字を含む文字列があります.この文字列のm番目の文字から始まるすべての文字を別の文字列にコピーする関数を書きます.
1312 ワード
#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';// , 。
}