• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++の問題で困っています。)

C++の問題に困っています

このQ&Aのポイント
  • C++の入門書の演習問題に取り組んでいますが、答えがなく悩んでいます。
  • 問題としては、文字列 s に含まれる最も先頭に位置する文字 c へのポインタを返す関数 strchr_ptr を作成することです。
  • コンパイルして実行するとアドレス的な表記がされず、どうすればいいか分かりません。初歩的な質問ですが、教えてください。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

>     cout << strchr_ptr(s, 'X') << "\n"; cout << static_cast<void*>(strchr_ptr(s, 'X')) << "\n"; としてください。 >     cout << &s + 4 << "\n"; こちらも間違っています。 cout << static_cast<void*>(s + 4) << "\n"; としてください。

jaron
質問者

お礼

なるほど! こういう時には char へのポインタだと文字列の表示になってしまうから, どの型にでも対応できる void へのポインタにキャストしてから表示するんですね。 まさかこんな所で void へのポインタへ型キャストするなんて思いもしませんでした・・。 ありがとうございました!

その他の回答 (1)

回答No.2

int main() { char s[36] = "ABSZXYX"; cout << static_cast<void*>(strchr_ptr(s, 'X')) << "\n"; cout << static_cast<void*>(s + 4) << "\n"; }

jaron
質問者

お礼

なるほど! 下の方のご回答でも知りましたが、やはりこういうときはvoid型へのポインタに型キャストしてから表示するんですか! 回答ありがとうございました。 下の方とほとんど変わらない説明をしてくださっているのですが、下の方のほうが早かったということで、下の方をベストアンサーに選ばせていただきます。 ごめんなさい。

関連するQ&A

専門家に質問してみよう