Crです。
Stringからintへの代入について質問です。
strは本当はユーザーからの読み取りでアルファベット一文字、数字一文字を読み取ります。
このとき、アルファベット一文字と数字一文字、またはアルファベット一文字のみ
の二つの可能性があるので読み取りの段階で区別することは不可能です。
で、数字があると分かったとき(今は判定は除いています)数字だけをint型のnに代入したいのですが…
これだと文字コードが代入されますよね
で、atoi()を使おうかと思ったのですがこれはC用ですよね
更に、Cでstringを使うには.c_strが必要ですよね
ですが今.at(1)がもうすでについている状態なんです。
この場合はどうやれば二文字目だけをnに代入できるのでしょうか?
stringからintへの代入
-
Cr
Re: stringからintへの代入
自分で読み返した時に違和感が来たので訂正します。
C用の関数で、とか Cのときからある関数で という感じでしょうか?
読みづらい駄文ですみませんが、回答お待ちしています。
どう頑張ってもC言語でstringは使えませんね…更に、Cでstringを使うには.c_strが必要ですよね
C用の関数で、とか Cのときからある関数で という感じでしょうか?
読みづらい駄文ですみませんが、回答お待ちしています。
Re: stringからintへの代入
1文字だけならatoi()を使わずに文字コードから48を引けば数値に変換できます。
-
Cr
Re: stringからintへの代入
どうもありがとうございます!
一行目のstrintは調べても出てこなかったのでstringとみてよろしいのでしょうか?
strtol…へぇ…
進数変換なんてものがあるんですね
10進数変換で変換できない文字(数字以外)を無視と…
ここで10進数なのに進数変換が思いつくなんてすごいですね!
どうもありがとうございました!!
一行目のstrintは調べても出てこなかったのでstringとみてよろしいのでしょうか?
strtol…へぇ…
進数変換なんてものがあるんですね
10進数変換で変換できない文字(数字以外)を無視と…
ここで10進数なのに進数変換が思いつくなんてすごいですね!
どうもありがとうございました!!
Re: stringからintへの代入
Crさんのソースでstrintになっていたのでそのままコピペしてしまいました(´・ω・`)Cr さんが書きました: 一行目のstrintは調べても出てこなかったのでstringとみてよろしいのでしょうか?
stirngが正しいです。
Re: stringからintへの代入
そんな不確かなことより、単に '0' を引けばよいのでは?h2so5 さんが書きました:ASCII文字が1バイトで表されるchar型の文字列データであれば基本的に大丈夫だと思います。(あまり詳しくないですが...(-_-;))Cr さんが書きました: ちなみにそれって動かす環境によって変わったりはしませんか?