xstrcpy를 사용하여 복사 및 인쇄 할 수 없으며 while 루프에서 각 문자가 인쇄되지만 주 전체 문자열을 인쇄하려고하면 빈 줄이 인쇄되지만 while 루프 바로 아래에는 문자열이 인쇄되지 않습니다. 이 :(일어나고있는 이유를 알고 진다고다음 코드 조각에 문제가 있습니다 ... 문제가 있습니까?
코드 :
#include<stdio.h>
#include<stdlib.h>
int xstrlen(char *);
char * xstrcpy(char *,char *);
main()
{
char *expptr1="Hello World";
char *expptr2 = "Hello Again";
char *expptr3;
printf("%d\n",xstrlen(expptr1));
expptr3 = xstrcpy(expptr1,expptr2);
printf("%s\n",expptr3);
}
int xstrlen(char *ptr)
{
//printf("I am here\n");
int count = 0;
while(*ptr++!='\0')
count++;
return count;
}
char * xstrcpy(char *ptr1,char *ptr2)
{
int i=xstrlen(ptr2);
printf("%s\n",ptr1);
printf("%s\n",ptr2);
ptr1 =(char *)malloc(i);
//printf("i am here\n");
while(*ptr2 != '\0')
{
*ptr1 = *ptr2;
printf("%c\n",*ptr1);
ptr1++;
ptr2++;
}
printf("%s",ptr1);
return ptr1;
}
출력 : 당신이 문자열을 복사과 같이 PTR1의 포인터 주소를 변경 한
11
Hello World
Hello Again
H
e
l
l
o
A
g
a
i
n
ׁׁ
Exited: ExitFailure 4
다음 번에 질문에 코드를 게시하십시오. –