• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++)

C++ 文字を右にずらす問題

このQ&Aのポイント
  • C++文字を入力して、それを1つ右にずらして出力する問題。
  • 関数内でポインタを使用するのが条件で、ズラしているつもりが、入力した文字がそのまま出力されてしまいます。
  • ポインタを使用して文字列を右にずらすアルゴリズムを実装しようとしていますが、思った通りに動いていないようです。

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

  • ベストアンサー
  • chu2oyaji
  • ベストアンサー率31% (17/54)
回答No.3

> while (*t++){ len++; } ここで t が変わってしまいます。文字列終端+1かな。 その後の処理では t が入力された文字列の先頭を指している事を期待しているので、 意図した動きになっていないと思われます。

shoudd
質問者

お礼

なるほど!  char *p=t; と置き換えて、 while(*p++){len++;} とすることによって解決しました! ありがとうございました!

その他の回答 (2)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

> while (*t++){ このループを抜けたとき、tは一体どこを指しているでしょう? バッファが十分すぎる量なのでsegmentation faultにはなっていませんが、これがs[10]とかだとメモリ破壊しますよ。 本来strlenで十分ですし、あくまで計算で行う方針ならt+lenで行わなければ駄目です。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

t を変えちゃっていいの?