C C 字串型別的用法整理筆記

2021-08-16 06:24:37 字數 2443 閱讀 3360

字串型別,即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是為了去...