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

Cプログラムでアポストロフィーを取り除く方法

このQ&Aのポイント
  • Cプログラムで、標準入力から入力された文から、アポストロフィーをだけをとって表示するプログラムを作成する方法を教えてください。
  • また、空白を無視して表示する方法も教えてください。
  • 現在のプログラムでは、アポストロフィーを取り除くことができますが、空白が出力されてしまいます。どうすれば空白も無視できるようになるのでしょうか?

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

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

strpbrk 関数は文字列中に指定した文字群のいずれかの文字が最初に現れる位置のポインタを返します。つまり文字列の最初の文字が文字群と一致した場合、strpbrk 関数に渡したポインタと同じポインタが返ってきます。 このプログラムの場合、cp == bp になると str2[i][bp-cp+1] = '\0'; は str2[i][1] = '\0'; となります。 この場合、str2[i][0] には有効な値は入っていません。 str2 はグローバル変数なので 0 で初期化されいる為、運良く動いているのだと思います。 str2[i][bp-cp] = '\0'; とするべきです。 つまり、bp == cp の場合に処理をスキップすれば正しく動作する訳です。

参考URL:
http://www.microsoft.com/JAPAN/developer/library/vccore/_crt_strpbrk.2c_.wcspbrk.2c_._mbspbrk.htm
tiruda
質問者

お礼

解決しましたm(__)m

すると、全ての回答が全文表示されます。

関連するQ&A