a=ello
b=ByebyeHello
と出力されてしまい、str1の最初の文字が消えていました。
以下が私の作ったプログラムです。
#include <stdio.h>
char *mystrcat1(char *str1, const char *str2){
while(*str1!='\0'){
str1++;
}
while(*str2!='\0'){
*str1=*str2;
str1++;
str2++;
}
*str1=0;
return str1;
}
int main (void){
char a[] ="Hello";
char b[] ="Byebye";
mystrcat1(b,a);
printf("a=%s\n",a);
printf("b=%s\n",b);
return 0;
}
そして次に、while文でstr2の文字がなくなるまでstr1の後ろからstr2の文字を終端までコピーする。
最後にstr1にNULL文字を入れてstr1を返す。
というものです。
何故配列a="Hello"の最初の文字Hはきえてしまったのでしょうか?
よろしくおねがいします。