1. 程式人生 > >c++字串、陣列輸入輸出及相互轉化總結

c++字串、陣列輸入輸出及相互轉化總結

★★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陣列輸入