c++字串、陣列輸入輸出及相互轉化總結
阿新 • • 發佈:2019-01-02
★★int轉char
//輸出a,i當作十進位制ASCii碼看待。
i=97; c=i; cout<<c;
★★int轉char陣列
//方法一:使用itoa()函式。10表示進位制。只能用整數轉陣列。
itoa(i,cc,10);
//方法二:使用sprintf()函式。i 也可以是浮點數例如 sprintf(cc,%f,f);//其中 f 型別是float
sprintf(cc,%d,i);
// 方法三:通過ss中轉。i 也可以是浮點數。如果ss已經被使用過,先用ss.str(""); ss.clear();復位ss。
ss<<i; ss>>cc;
★★int轉string
//方法一:先int轉char陣列,再char陣列轉string
//方法二(推薦):通過ss中轉。i 也可以是浮點數。如果ss已經被使用過,先用ss.str(""); ss.clear();復位ss。
ss<<i; ss>>s;
//其他方法:例如使用boost庫中的lexical_cast,就不介紹了。
★★int轉stringstream
ss<<i; //如果ss已經被使用過,先用ss.str("");清空ss快取,再用ss.clear();清除ss無效狀態,才能繼續串接 i 到ss尾部。
★★int陣列輸入
//輸入以空格或回車區分每個元素
for(int j=0; j<sizeof(ii)/sizeof(ii[0]); ++j) { cin>>ii[ j ]; }
★★int陣列輸出
for(int j=0; j<sizeof(ii)/sizeof(ii[0]); ++j) { cout<<ii[ j ]<<' '; }
★★int陣列轉string
//方法一:for(int j=0; j<sizeof(ii)/sizeof(ii[0]); ++j) { 單個元素int轉char陣列; s+=cc; }
//方法二(推薦):通過ss中轉。如果ss已經被使用過,先用ss.str(""); ss.clear();復位ss。
for(int j=0; j<sizeof(ii)/sizeof(ii[0]); ++j) { ss<<ii[ j ]; } s=ss.str();
★★int陣列轉stringstream
//如果ss已經被使用過,先用ss.str(""); ss.clear();復位ss。
for(int j=0; j<sizeof(ii)/sizeof(ii[0]); ++j) { ss<<ii[ j ]; }
★★char輸入
cin>>c;
★★char輸出
cout<<c;
★★char轉int
//i=c,c自動轉換成十進位制ASCii碼。
c='a'; i=c;
★★char轉stringstream
//如果ss已經被使用過,先用ss.str(""); ss.clear();復位ss。
ss<<c;
★★char陣列輸入