C++ char 和 string 簡單用法
阿新 • • 發佈:2018-11-30
直接上程式碼,編譯執行,跟著結果對比就好理解
#include<iostream> #include<string> #include<sstream> #include<cstring> #include <stdlib.h> #include <stdio.h> using namespace std; int main() { cout << "-------------------------char*->數字------------------------"<<endl << endl; char a[] = {'-','1','2',',','3'}; int num1 = atoi(a); cout << "char -> int : " << num1 << endl; char a1[] = { '.','2' }; float num2 =atof(a1); cout << "char -> flaot : " << num2 << endl; cout << "-------------------------數字->char*-----------------------" << endl << endl; int num3 = +234; char c1[40]; sprintf(c1,"%d",num3);//按正常位數轉換 cout << "%d, int->char : " <<c1<< endl; sprintf(c1, "%6d", num3);//指定6位,不足左邊補空格 cout << "%6d, int->char : " << c1<< endl; sprintf(c1, "%06d", num3);//指定6位,不足左邊補0 cout << "%06d,int->char : " << c1 << endl; float num4 = 12.5; char c2[40]; sprintf(c2, "%f", num4);//按num4實際情況轉換 cout << "%f,float->char : " << c2<< endl; //%m.nf m代表c2列印總寬度,n代表保留的小數位 // if(m<=c2保留指定小數位後的總長度),m不起作用, //else 輸出m位,預設右對齊,不足位補空格 sprintf(c2, "%1.3f", num4); cout << "%1.3f, float->char : " << c2 << endl; sprintf(c2, "%10.3f", num4); cout << "%10.3, float->char : " << c2 << endl; sprintf(c2, "%-10.3f", num4);//加‘-’表示右對齊 cout << "%-10.3f, float->char : " << c2 << endl; cout << "--------------數字->string int/float 一樣------------------" << endl << endl; float num5 = -2.35; ostringstream ss; ss << num5; string s1 = ss.str(); cout << "num->string: " << s1 << endl; cout << "---------------string->數字 int/float 一樣------------------" << endl << endl; istringstream iss("123.23"); float num6; iss>>num6 ; cout << "string->num: " << num6 << endl; cout << "-----------------char*->string 直接賦值---------------------" << endl << endl; char *p1 = "zxcv"; string s2(p1); cout << "string(const char*): " << s2 << endl; string s3; s3 = p1; cout << "直接=賦值 " << s3 << endl; cout << "-----------------string->char* 用.c_str()---------------------" << endl << endl; string s4 = "qwer"; const char *p2 = s4.c_str(); cout << "const char p2: " << p2 << endl; char *p3 = (char*)s4.c_str(); cout << " char p2 : " << p3 << endl; system("pause"); }
感謝原作者,找不著原作者了哈