string 是c++標準庫裡面其中乙個,封裝了對字串的操作
(1)把string轉換為char* 有3中方法:
1.const char *data()const; //返回乙個非null終止的c字元陣列
如:string str="abc";
char*p=(char*)str.data();
2.const char *c_str()const; //返回乙個以null終止的c字串
如:string str="gdfd";
char *p=str.c_str();
3. int copy(char *s, int n, int pos = 0) const;//把當前串中以pos開始的n個字元拷貝到以s為起始位置的字元陣列中,返回實際拷貝的數目,比如
string str="hello";
char p[40];
str.copy(p,5,0); //這裡5,代表複製幾個字元,0代表複製的位置
*(p+5)='\0'; //要手動加上結束符
(2)char *轉換成string,可以直接賦值。
string s;
char *p = "adghrtyh";
s = p;
不過這個是會出現問題的。有一種情況我要說明一下。當我們定義了乙個string型別之後,用printf("%s",s1);輸出是會出問題的。這是因為「%s」要求後面的物件的首位址。
但是string不是這樣的乙個型別。所以肯定出錯。用cout輸出是沒有問題的,若一定要printf輸出。那麼可以這樣:
printf("%s",s1.c_str())
c 中char和string相互轉換
一 string轉char 主要有三種方法可以將str轉換為char 型別,分別是 data c str copy 1.data 方法,如 string str hello const char p str.data 加const 或者用 char p char str.data 的形式 同時有一點...
string型別和char型別相互轉換
概念 string string可以被看成是以字元為元素的一種容器。具有一些成員函式比如begin end 迭代器可以根據他們進行定位,length 函式獲取長度。與char型別不同,string 不一定使用null 0 結束,不能將string直接賦值給char char char 是乙個指標,可...
String與InputStream相互轉換
1.string to inputstream string str string與inputstream相互轉換 inputstream in nocode new bytearrayinputstream str.getbytes inputstream in withcode new byte...