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 ->string型に

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);  //でも問題なかった。
//