char, string型から、intへの変換 SRM 209 div2
01:22:09
とかのstring型が与えられた場合、int型に何らかの形で変換したい。
//仮引数 //vectortest(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;とか、原始的