C言語的文字列操作の復習
#include
大文字,小文字
islower(ch); isupper(ch);
数字
isdigit(ch);
int ->string型に.
#include#include string IntToString(int number) { string stream ss; //ss(string型)なので、int型であるnumberで初期化できない×ss(number) //[<<]であることに注意。 ss << number; return ss.str(); } //sprintf版 //string s; //sprintf(s.c_str(), "%d", number); //s.c_str()はconstなので、書き込みできない。 //sscanfのときは読み込みだけなので、つかってもOKなんだけど。 char s[256]; sprintf(s, "%d", number); //一文字だけなら、 int i = 6; string str = ""; //これなかったらエラー str = '0' + i; //で終了。
string->int型に
string str = "437687"; istringstream iss(str.data()); //str.data()ではなく、strのままだと数字として認識されない. int i; iss >> i; cout << i + 7 << endl; cout << endl; } //sscanf版 int n; sscanf( str.c_str(), "%d", &n); //str = "000500567"とかだと、 i = 500567+7になって、0がちゃんと捨てられる. //一文字だけなら、 string s = "6"; int i = s[0] - '0'; //s.c_str()だと、const型で変更できないエラーが出る。 cout << i << endl;
int
stringstream ss; for(int p = 0; p < perm[i].size(); p++) { ss << perm[i][p]; } string strr = ss.str();
char->string型に
//string( const charT* str ); でOKなので、 char ans[17]; sprintf(ans, "%02d:%02d", hour, minute); return string(ans); //一応問題なかった。 //string s(ch); //でも問題なかった。 //