코드 논리가 정확하지만 출력을 표시되지 //하지만 문자열
#include<stdio.h>
char *concat(char *p1,char *); //function decalaration
int main(void)
{
char a[100],b[100],*q=NULL; //declare two char arrays
printf("Enter str1:");
scanf("%s",a);
printf("Enter str2:");
scanf("%s",b);
q=concat(a,b); //calling str concat function
printf("Concatenated str:%s\n",q);
return 0;
}
char *concat(char *p1,char *p2) //function to concatenate strings
{
while(*p1!='\0')
p1++;
while(*p2!='\0')
{
*p1=*p2;
p1++;
p2++;
}
*p1='\0';
printf("Concatenated str=%s\n",p1); //printing the concatenated string
return p1; //returning pointer to called function
}
을 연결합니다. //이 코드가 작동하지 않는 이유는 무엇입니까?왜이 프로그램은 연결 문자열을 인쇄하지 않습니까?
을, 당신은'리턴 p1'을 수행 할 때,'* p1'의 값이 무엇인가? –
@gsamaras 나쁘지는 않지만'p1'은 여전히 유효한 문자열을 가리 킵니다. –
잘 예 @Someprogrammerdude,하지만 그가 원하는 .. ..) – gsamaras