へにっくすの掲示板日記

strcpyの戻り値

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

strcpyの戻り値

投稿記事 by へにっくす » 7年前

以下の投稿を見て思ったこと

http://dixq.net/forum/viewtopic.php?f=3&t=19585

そういや
strcpy関数の戻り値って見たことないな。
戻り値を見たことある人誰かいます?

なぜ戻り値がchar*なのか、個人的にナゾ

(^^;

アバター
usao
記事: 1889
登録日時: 12年前

Re: strcpyの戻り値

投稿記事 by usao » 7年前

(何が返ってくるのかすら知らない… Cのstr系関数って言うほど使用機会無いし)

アバター
asd
記事: 319
登録日時: 14年前

RE: strcpyの戻り値

投稿記事 by asd » 7年前

へにっくす さんが書きました: そういや
strcpy関数の戻り値って見たことないな。
戻り値を見たことある人誰かいます?
あれ、文字列コピー後の文字列全体(引数1番目に2番目をコピーしたあとの文字列)が返ってくるからchar*なんじゃないかと。
コピー後の文字列長が返ってくるわけではないんですね(*´ヮ`)

アバター
いわん
記事: 32
登録日時: 9年前

Re: strcpyの戻り値

投稿記事 by いわん » 7年前

実験的なソースでしか書いたことないですが、こんな風に使えます。
printf("%s\n", strcat(strcpy(str, "hello"), " world"));

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: strcpyの戻り値

投稿記事 by へにっくす » 7年前

> usaoさん
そうですよねえ?
私もあまり・・・というか、最近まったく使っていません…

> asdさん
いやいや
何で戻り値がchar*なのかを、、、
まあいいや

アバター
asd
記事: 319
登録日時: 14年前

Re: strcpyの戻り値

投稿記事 by asd » 7年前

へにっくす さんが書きました: > asdさん
いやいや
何で戻り値がchar*なのかを、、、
まあいいや
なんだろう、私が盛大に勘違いしてましたかね…
char* が返ってくるのがナゾってことでしたので、「コピー後の文字列サイズなり実行結果コードのintが返ってくるなど別のものが返ってくることを期待していた」と
推測していたのですが…そういうことではない?

壁|ω・`)もうしばらく悩んでみますね

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: strcpyの戻り値

投稿記事 by へにっくす » 7年前

> asdさん

CODE:

char a[256] = {0};
char *b = NULL;
b = strcpy(a, "dummy");
printf("strcpyの結果:%s", b);
みたいにstrcpyの戻り値を変数に入れたりするようなコードを組んだことがあるかな?

思っただけ。
最後に編集したユーザー へにっくす on 2017年9月27日(水) 21:59 [ 編集 1 回目 ]

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前

Re: strcpyの戻り値

投稿記事 by Dixq (管理人) » 7年前

もうずっと最近はstd::string使ってどうしても必要な時だけc_str()してる感じですね・・。
Cしか使えないドライバの開発とかもう無理・・。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: strcpyの戻り値

投稿記事 by へにっくす » 7年前

> いわんさん

CODE:

printf("%s\n", strcat(strcpy(str, "hello"), " world"));
なるほど。
こういう使い方か~
strには"hello world"が入りますね。

> Dixqさん
C言語学び始めた頃はバリバリに使ってましたけどね。
C#、Javaを使うようになってからはとんと。
同じようなもんです。

アバター
asd
記事: 319
登録日時: 14年前

Re: strcpyの戻り値

投稿記事 by asd » 7年前

へにっくす さんが書きました:> asdさん

CODE:

char a[256] = {0};
char *b = NULL;
b = strcpy(a, "dummy");
printf("strcpyの結果:%s", b);
みたいにstrcpyの戻り値を変数に入れたりするようなコードを組んだことがあるかな?

思っただけ。
あぁぁ!そういうことでしたか!(゜∀゜)!悩んだまま寝ることにならなくて助かりました(気にしすぎw)
確かにわざわざ戻り値を使わなくても第1引数を参照したらいい話なので戻り値をわざわざ取得することはないかもですが、
自作関数の戻り値でreturn strcpy(str1, str2);みたいにするときは使えるかもですね(*´ヮ`)
壁|ω・`)微妙な例しか出せてない…w

時々C言語で開発することがあるのでstr系関数はそれなりにお世話になってます。
最後に編集したユーザー asd on 2017年9月27日(水) 23:37 [ 編集 1 回目 ]

アバター
asd
記事: 319
登録日時: 14年前

Re: strcpyの戻り値

投稿記事 by asd » 7年前

壁|ω・`)編集するつもりが返信をクリックしてしまいレスの削除もできなかったので無駄にレス数増やしてしまいました…ごめんなさい
最後に編集したユーザー asd on 2017年9月27日(水) 23:40 [ 編集 1 回目 ]