• 締切済み

strchrと同じような機能をする関数を作りたい。

文字列中から指定した文字を探すstrchr()と同じような機能の関数を自分で作りたいと思っています。 最終的には、その指定した文字を別の指定した文字に変換できるような関数にしたいと思っています。 forやwhileを使って文字を探せばいいのではないかと思っているのですが・・・。 アドバイスやヒントがあったらよろしくお願いします。

みんなの回答

  • macchun
  • ベストアンサー率50% (3/6)
回答No.3

今までのご回答のとおり for や while を使って文字を探せばいいのですが、「マルチバイト文字」の取り扱いには注意が必要です。 例えば SHIFT-JIS 文字コードで strchr("ソリティア", '\\'); を実行すると、NULL 以外の値が返ってきます。それは'ソ'の2文字目が'\\'と同じ値だからです。 そのため、検査対象の文字が実際には何バイトの文字なのかを考慮する必要があります。 ただ、ASCII 文字のみを対象とする場合には、特に考慮する必要はありません。

itigo-ore
質問者

お礼

ありがとうございます。

noname#16765
noname#16765
回答No.2

一文字だけならwhile文などの条件に 文字列(検索位置)!=検索文字 && 文字列(検索位置) != '\0' とかにしたらいいのではないでしょうか? 気をつけるとこは検索位置をインクリメント(++)する位置が間違えて返却値がおかしくならないようにするなどですかね?

itigo-ore
質問者

お礼

ありがとうございます。参考にさせていただきます。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

アドバイスです。 forやwhileを使って文字を探せばいいので、まずは作ってみてください。

itigo-ore
質問者

お礼

ありがとうございます。

関連するQ&A