字串型別,即string型別,因為使用方便,不必擔心記憶體問題,越界問題等等,還有在不太確定即將存入的字串長度的時候使用是非常好的。本片中,將會對string型別的字串和char型別的字串對比使用講解,作為隨筆筆記,記錄常用的用法,同時也會隨著見識的增長隨時更新
string 型別字串在使用的時候需要加上標頭檔案#include,而char型別的字串陣列在使用的時候往往要加上標頭檔案#include才能夠使用。下面對比介紹string型別和char型別字串的用法
(接下來的例子給變數命名我都用的是str1,str2…)
string str1,str2 char str1[maxsize],str2[maxsize]//假定要定義的char型別字串陣列的大小為maxsize
string型別:str1==str2;str1>=str2;str1<=str2就不一一枚舉了,可以看出,string型別字串比較是非常方便的,直接就像int型別那樣直接比就可以了(當然比法是不一樣的)
char型別:strcmp(str1,str2); 有返回值的,str1str2返回正數。某真心感覺很麻煩,每次比較都要用函式,當然也可以進行運算子過載直接像string型別那樣比較,如果不嫌麻煩的話。
將str2中內容複製到str1中
string型別:str1=str2char型別:strcpy(str1,str2);
string型別變數在定義的時候還可以拷貝建構函式,如string str1(str2);
將str2中內容連線到str1後頭
string 型別:str1+=str2char型別:strcat(str1,str2);
統計字串中字元的個數:
string型別:str1.length(); str1.size();返回的值都是str1的長度
char 型別:strlen(str1);返回的值是str1的長度
string型別:str1..~string();
或者:str1=」」;
char str1=」***」;
string str2(str1);
strcpy(str2,str1.c_str());
前邊的str2是char型別的字串,後邊str1是string型別的。注意轉換千萬別越界
string中的某乙個字元是可以直接儲存到char型別字元中的,例如
string str=」123」
如ch=str[1];
那麼輸出ch列印出來的是2
字串中的某一字元轉換成int型別數字:
int num=str[i]-『0』;
字串轉換成整數:
用atoi()函式,c語言中標頭檔案是#include(c++中是#include)
用法:atoi只能轉char *型別的,如果是string型別的,需先轉成char型別
int num=atoi(str);
itoa()函式,將整數轉換成char型別
itoa(num,str, radix);
num是int型別數字,str是最終轉換成char的結果,radix是用多少進製儲存,如2、8、10、16進製制等
find()函式:
字串詳細內容見大神部落格:
基本用法
int key=find(str1,str2);
其中str1、str2都是string型別,函式的意思是在str1中查詢str2第一次出現的位置並返回這個值,如果不存在則返回-1
strstr()函式:
char *str3=strstr(str1,str2);
str1,str2均為char*型別,函式的意思是在str1中查詢str2,返回第一次出現str2的位址,如果沒有找到則返回空
例如str1=」my name is」; str2=」name」;
那麼返回的str3為「name is」;
string型別中,字串字串的擷取:
substr()函式,用於string型別
string str;
str.substr(startnum, len);
其中 startnum 是起始字元的序號,len是從起始字元開始擷取的字串長度
那麼,若要擷取str中序號m到n間(其中不包括n)的子字串則為
str.substr(m, n-m);
strtok()函式,用於char型別
char *str=strtok(str1,str2);
將字串str1沿著str2切割,返回的是char*
關於字串型別切割的,要想深入研究還可以搜搜其他大神的
c c 整理 字串(2)
試題1 include include int main 這題str1有11個元素,string只有10個元素,拷貝的時候,記憶體不夠,陣列越界,會出現錯誤。試題2 include include int main strcpy string,str1 return 0 這題strcpy函式是以 0...
String字串用法整理
字串的構造方法 public string string s new string public string string original s new string hello public string char value 將字元陣列轉換成字串s new string new char pu...
LPSTR型別的字串用法
這兩個函式要求輸入的字串必須是lpcwstr型別,這中間必須把char型別轉化為它,才能在視窗顯示你想顯示的內容。不喜歡廢話,上 case wm paint else 更簡單的方法 上面是c庫的函式,不提倡在win32裡面用 int sizenum lstrlenw widechar 1 1是為了去...