C 中流,位元組,字元,字串

2021-10-05 17:32:48 字數 1604 閱讀 8792

首先要明白它們本身是由什麼組成的:

流:二進位制

位元組:無符號整數

字元:unicode編碼字元

字串:多個unicode編碼字元

那麼在.net下它們之間如何轉化呢?

一般是遵守以下規則:

流->位元組陣列->字元陣列->字串

下面就來具體談談轉化的語法

流->位元組陣列

memorystream ms = new memorystream();

byte buffer = new byte[ms.length];

ms.read(buffer, 0, (int)ms.length);

位元組陣列->流

byte buffer = new byte[10];

memorystream ms = new memorystream(buffer);

位元組陣列->字元陣列

1.byte buffer = new byte[10];

char ch = new asciiencoding().getchars(buffer);

//或者:char ch = encoding.utf8.getchars(buffer)

2.byte buffer = new byte[10];

char ch = new char[10];

for(int i=0; ich[i] = convert.tochar(buffer[i]);

字元陣列->位元組陣列

1.char ch = new char[10];

byte buffer = new asciiencoding().getbytes(ch);

//或者:byte buffer = encoding.utf8.getbytes(ch)

2.char ch = new char[10];

byte buffer = new byte[10];

for(int i=0; ibuffer[i] = convert.tobyte(ch[i]);

字元陣列->字串

char ch = new char[10];

string str = new string(ch);

字串->字元陣列

string str = "abcde";

char ch=str .tochararray();

位元組陣列->字串

byte buffer = new byte[10];

string str = system.text.encoding.utf8.getstring(buffer);

//或者:string str = new asciiencoding().getstring(buffer);

字串->位元組陣列

string str = "abcde";

byte buffer=system.text.encoding.utf8.getbytes(str);

//或者:byte buffer= new asciiencoding().getbytes(str);

說明:主要就是用到了convert類和system.text命名空間下的類,encoding是靜態類,asciiencoding是實體類,方法都是一樣的!

字串 字元 位元組

字串就是一串零個或多個字元,並且以乙個位模式為全0的nul位元組結尾。nul位元組是字串的終止符,但它本身並不是字串的一部分,所以字串的長度並不包括nul字元。複製字串 char strcpy char dst,char const src 這個函式把引數src字串複製到dst引數。如果引數src和...

c和指標 字串 字元 位元組

字串就是一串零個或多個字元,並且以乙個位模式為全0的nul位元組結尾 但是nul並不是字串的一部分,所以字串長度不包括nul。函式原型 size t strlen char const string 這個函式中出現了size t型別,這個型別是在stddef.h中定義的,它是乙個無符號的整型。但是在...

c和指標 字串 字元 位元組

1.strspn 返回字串中第乙個不在指定字串中出現的字元下標 表頭檔案 include定義函式 size t strspn const char s,const char accept 函式說明 strspn 從引數s 字串的開頭計算連續的字元,而這些字元都完全是accept 所指字串中的字元。簡...