1.前提
1.1字符的種類
字符分爲兩種
- 字符常量char
- 字符常量1字節
-多字符字面量常見3字節
- 寬字符wchar_t
windows使用UTF-16編碼 所以是2字節,linux是UTF-32所以是32字節
1.2 常用的名詞
大小:字節數常用sizeof()
計數:數組中元素的個數_countof()
長度:在eof之前的字符數 >=計數的數值
2.sizeof()
用於計算sizeof()內類型的大小可以是數據類型,也可以是函數,但是函數只計算返回值的大小而且不運行。註明:計算字符串數組時候sizeof()函數會加上\0。
char* new_space = (char*)malloc(sizeof(int)+1)
3.strlen()
int main(int argc,char* argv[])
{
char a[] = "hello";
unsigned char b[] = "afternoon";
int b1 = strlen(a); //b1=6
int b2 = strlen(b); //錯誤不可以使用,類型錯誤。 unsigned char b []其實是 const ubsigned char* b[]
}
所以說strlen()只能處理簡單的char字符數組,當然也不可以直接放入其他類型,如wchar_t 當然還有一點是,strlen是根據null來判斷數組的末尾的,但是wchar_t是可以直接放入null字符的。所以在vs2019中是直接顯示錯誤。
4.wcslen()
這個函數是專門用來計算wchar_t的字節數。返回值爲int
int main(int argc,char* argv[])
{
char * p = NULL;
char Int_array[] = {4,5,6,7,8,9};
wchar_t array[] = L"中";
p = Int_array;
int a = _countof(Int_array); //a=6
int b = sizeof(array); // b=4byte
getchar();
return 1;
}
trick ctrl + u 轉換爲小寫
ctrl + shift + u 轉換爲大寫
ctrl + k 之後加上 ctrl+c添加註釋
ctrl+k 之後加上 ctrl + u 刪除註釋
tips 提供了標準模板類 bitset<32> a(100)
總的來說要注意數值類型,它具有大小,以及不同的類型編譯器對它的處理也不同,例如接下來一篇文章中的unsigned char類型。