char 與 string物件相互轉換

2021-07-12 03:54:06 字數 857 閱讀 1586

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...