• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:半角数字が入ったデータで、半角数字を全角数字に変化関したいのですが)

半角数字を全角数字に変換する方法

このQ&Aのポイント
  • 半角数字が入ったデータで、半角数字を全角数字に変換したいですが、うまくいきません。文字コードはUTF-8です。
  • 指定した関数を使って半角の1を全角の1に変換しようとしましたが、うまく変換されませんでした。
  • この方法では半角数字の変換がうまくいかないようです。他の方法をご教授いただきたいです。

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

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

#2の回答に関して >atoi関数はchar*型をintにする関数 >num= atoi(s); >sはすでにint型なのでおかしい atoi関数は引数の文字列を数字にして返り値として返す関数なので、sを変換した結果はnumに入り、s自体はそのまま何も変わりません。sの型がint型に変わったりは絶対あり得ません。 質問文ではnが何であるかは明確じゃないので、numが不要でnを使えなんて意味は不明です。 nは全角文字に変換した結果の格納先のインデックスだろうとは思えますが、その格納先のバッファが入力文字列のsと同じで良いのかどうかは質問文からは判読できません。(質問者が大丈夫だと確信しているのなら大丈夫じゃないかなという程度のところ) 普通に入力文字を数字に直したのをnumに入れているだけだから、これはこれで良いはずです。 【ここから回答の本文】 ま、問題の本質は >nはint型なので >case '1':はcase 1: これはnumの場合も同じなので、「''」で括る必要はありません。 おそらく、「1」が入ってきてもdefaultに行ってしまうから全角に変換されていないのだと思われます。

yxia001
質問者

お礼

有難う御座います 早速、試してみたいと思います。

その他の回答 (2)

  • aurumnet
  • ベストアンサー率43% (51/117)
回答No.2

atoi関数はchar*型をintにする関数 num= atoi(s); sはすでにint型なのでおかしい int substitute(unsigned char *s, int n) numは不要じゃないかな? nで場合わけするんだから switch(num) は switch(n) これにより nはint型なので case '1':はcase 1:

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.1

nはどんな意味があるのでしょうか?

関連するQ&A