#include <stdio.h>
char *pstrcat(char *str1, char *str2){
char *head; /* 文字列の先頭を示すポインタ */
char *ptr; /* 現在位置を示すポインタ */
/* 2つの文字列分の領域を確保し、その先頭アドレスをheadに代入 */
head = (char *)malloc(strlen(str1) + strlen(str2) + 1);
ptr = head; /* 初期位置をptrに代入 */
/* 文字列 str1 の内容をアドレスptr以下にコピー */
while (*str1 != '\0')
*(ptr++) = *(str1++);
/* 文字列 str2 の内容をアドレスptr以下にコピー */
while (*str2 != '\0')
*(ptr++) = *(str2++);
*ptr = '\0'; /* 最後の位置に文字列の終端文字'\0'を代入 */
return head; /* 文字列の先頭アドレスを返す */
}
int main(void){
char str1[100], str2[100];
scanf("%s",str1);
scanf("%s",str2);
printf("%s\n",pstrcat(str1,str2));
}
|