ページ 1 / 1
strcpy
Posted: 2009年4月24日(金) 10:42
by 研修生
char strcpy(char *S1, const char*s2)
{
char *p=s1;
while(*s1++=*s2++)
;
return p;
}
int main()
{
char *p="Visual";
char *q="C++";
printf("%s",strcpy(p,q));
return 0;
}
これは参考書にあるstrcpyの定義書き写したものですがなんかエラーでます・・
<string.h>のstrcpy使ってもでるので混乱している状態です。
Re:strcpy
Posted: 2009年4月24日(金) 10:47
by バグ
コピー先に書き換え不能な領域を指定しているからです。
ひょっとして、研修生さんはVBとかJavaの経験者なのでしょうか?
Re:strcpy
Posted: 2009年4月24日(金) 10:48
by 研修生
すいません。前回の質問と一緒で実体がなさそうでした。
Re:strcpy
Posted: 2009年4月24日(金) 10:49
by 研修生
いえ、全くの初心者です。
char *p=Visual";
char s[19];
printf("%s",strcpy(s,"aaa"));にしたら使えました。
バグさんありがとうございました。
Re:strcpy
Posted: 2009年4月24日(金) 10:53
by バグ
そうでしたか、失礼しました(^_^;)
最初は、「文字」、「文字列」、「文字列へのポインタ」の違いが分かりづらいとは思いますが、頑張ってください。
Re:strcpy
Posted: 2009年4月24日(金) 12:27
by 初級者
何かエラー出ます、ではなく
「何のときに、どんな」エラーが出るかを書いてください。
ところで、質問時のソースでは関数の型 char と戻り値の型 char * が
異なっています。
解決済みですか?
Re:strcpy
Posted: 2009年4月24日(金) 12:59
by 研修生
あ、表記ミスです。書き写しなのですいません