一般乙個c++的老的帶「.h」副檔名的庫檔案,比如iostream.h,在新標準後的標準庫中都有乙個不帶「.h」副檔名的相對應,區別除了後者的好多改進之外,還有一點就是後者的東東都塞進了「std」名字空間中。
但唯獨string特別。
問題在於c++要相容c的標準庫,而c的標準庫里碰巧也已經有乙個名字叫做「string.h」的標頭檔案,包含一些常用的c字串處理函式。
這個標頭檔案跟c++的string類半點關係也沒有,所以 並非 的「公升級版本」,他們是毫無關係的兩個標頭檔案。
使用字串的函式的時候需要新增此標頭檔案。
比如如下常用函式:
strlen求字串長度
strcmp比較2個字串是否一樣
strcat字串連線操作
strcpy字串拷貝操作
strncat字串連線操作(前n個字元)
strncpy字串拷貝操作(前n個字元)
strchr 查詢子串
strstr 查詢字串
c++中,string標頭檔案基本上已經包含在iostream中了。
但是,平時使用的時候建議加上#include(尤其在以下情況下)
1、使用string型別
2、使用cin、cout語句來輸入輸出string型別變數(注意,同時還需要#include)
3、使用memset()、strlen()、strcpy()等函式時。
string和string h的區別
一般來說,h字尾都是c的標頭檔案,與其相對應的不加.h的都是c 的標頭檔案,比如 include 和 include 前者是c的標頭檔案,後者是c 的標頭檔案,也就是c 沒有.h的副檔名,一般後者都是前者的公升級版本。在c 標準化的過程中,為了表示標頭檔案 於c,有時也在前面加上c,比如cmath就...
字元陣列 string h和string
char str 10 char str 10 kangjiasal 報錯,應該還有個結束字元 0 char str 11 kangjiasal 輸出 for int i 0 i 10 i printf s str 1.2.1 scanf輸入,printf輸出 scanf輸入,printf輸出 c用...
string與string h 的作用和區別《轉》
c 中 string與string.h 的作用和區別 include void main 不能正確執行,提示說是string型別沒有定義 而下面 include using namespace std void main 這裡的string編譯器就認識了,但是strcmp就不認識了呢?一般乙個c 的...