我想推動一些數字字符的數組。但數字很大,因爲exameple讓'125'。 我試過3原因: 1)整數:如何將數字「125」推到char數組中?
char arr[2];
int number = 125;
int *pNumber = &number;
memcpy(arr + 0, pNumber, sizeof(arr));
cout << (int)arr[0] << endl;
和輸出繼電器是:
125
因此,這是驚人的!但如果我改變大於127的數字,所以結果是不好的。對於128是-128,129是-127 .....怎麼可能?有沒有辦法解決它?至於我炭的尺寸小於128
2)char數組:
char arr[2];
char *arr2 = new char[3];
arr2[0] = '8';
arr2[1] = '9';
arr2[2] = '\0';
memcpy(arr + 0, (char*)arr2, sizeof(pole));
cout << arr[0] << endl;
然而thisone打印只是最前一頁符號 '8'。我可以修復它嗎?或者這又是一個壞的方式?
3)字符串:
char arr[2];
string s = "125";
string *ps = &s;
memcpy(pole + 0, ps, sizeof(pole));
cout << pole[0] << endl;
該輸出一些跡象,我可以不承認..
請,你能告訴我,我可怎麼辦呢?謝謝!
你不能在一個符號的字符超過127個存儲,我明白了什麼,你想要做什麼。 – 2014-10-28 00:08:05
如果你解釋了你真正想要發生的事情,這將有很大的幫助。當你將128個字符推到一組字符中時,你想實際發生什麼? – 2014-10-28 00:09:24
當你超過127個字符時,它會溢出到負值。使用無符號字符無負數,最大值爲255 – Shadow 2014-10-28 00:10:42