char, string型から、intへの変換 SRM 209 div2

01:22:09

とかのstring型が与えられた場合、int型に何らかの形で変換したい。

//仮引数
//vector test(10) //vector test(SIZE)
  vector ts //1つの配列をもつ、string型。 

for(int i = 0; i < ts.size(); i++) {
  sscanf(ts[i].c_str(), "%d:%d:%d", &h, &m, &s);
  ; //いろいろ処理
}

うん、鮮やかですね。この後は、秒単位にして直したりするので、

ans = h*60*60+m*60+s;

でいろいろと。



追記
char型から、int型に治す方法としては、

char time[4] = "0655";
int ans;
for(int i = 0; i < 4; i++) {
  ans = (time[i]-'0') * pow(10, 4-i);
}

とか。これだと、一文字一文字処理する形になってしまう。
また、string time; だと、あたかも、char型のように使って処理している。

charT& operator( size_type index );
const charT& operator( size_type index ) const;

なので、それ自体は別に何の問題もないみたい。


2011.04.09
char型から、string型に変更することはあまりなくて、最初から、string型にしておく。
string型もchar型とまったく同じ操作ができる。

string text;
text = "a" + text;とか、原始的