char *str_copy(char *d, const char *s){
char *t = d;
while(*d++ = *s++);
return t;
}
int main(){
char str[128] = "ABC";
char tmp[128];
printf("str = \"%s\"\n", str);
printf("コピーするのは:"); scanf("%s", tmp);
puts("コピーしました.");
printf("str = \"%s\"\n", str_copy(str, tmp));
return 0;
}
突然すみません、お聞きしたい事があるのですが
返信削除294ページのList11-6
/*
文字列をコピーする
*/
#include
/*--- 文字列sをdにコピーする ---*/
char *str_copy(char *d, const char *s)
{
char *t = d;
while (*d++ = *s++)
;
return t;
}
int main(void)
{
char str[128] = "ABC";
char tmp[128];
printf("str = ¥"%s¥"¥n", str);
printf("コピーするのは:", tmp);
scanf("%s", tmp);
str_copy(str, tmp);
puts("コピーしました。");
printf("str = ¥"%s¥"¥n", str);
return 0;
}
で*str_copyという関数がありますがその中で
char *t = d;
return t;
この2行の必要性を感じないのですが、何の為に書いてあるのかわかりますか?
個人的にはコピーされて書き換えられてしまうから、バックアップとして撮ってるんでしょうか?