• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メソッド間の文字列の受け渡し)

メソッド間の文字列の受け渡しについて

このQ&Aのポイント
  • 初歩的な内容ですが、混乱してしまっているので、どなたか教えてください。
  • 呼び元のメソッドで文字列を設定した文字列を呼び先subで取り出したいのですが、アドレスから文字列を取り出すにはどうすればいいのでしょうか?
  • #メソッド #文字列 #受け渡し

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> アドレスから文字列を取り出すにはどうすればいいのでしょうか? そのアドレスが文字列の先頭を指しています。 void sub(char *abc) /* 文字列abcのアドレスをポインタとして値受け取り */ {  printf("[%s]\n", abc);  abc[0] = 'a'; // mainに戻れば "aBC" }

kumakku-
質問者

お礼

回答ありがとうございます。助かりました。 お手すきであれば、追加の質問の方も宜しくお願いします。

kumakku-
質問者

補足

回答ありがとうございます。混乱してました。 質問が派生していまいますが、subでabcの全体の長さ(main関数で定義したchar abc[]="ABC"; ここでは3になりますが)を知る方法は有りませんよね? sizeof(abc) すれば、データ入っているサイズはわかりますが、今回は、たまたま配列長と中身のデータ一緒ですが

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>sizeof(abc) すれば、データ入っているサイズはわかりますが、今回は、たまたま配列長と中身のデータ一緒ですが 必ずNUL文字で終端であるなら strlen(abc) で調べられますけど。

kumakku-
質問者

お礼

回答ありがとうございました。 ご指摘のとおりNUL文字終端を想定していて。。。。結果が違ったので混乱してました。 例は簡単な文字列で質問しましたが、データの方を見直してみます。