您好我正在開發的C#的客戶端應用程序和服務器是用C++INT []字符串C#
服務器使用:
inline void StrToInts(int *pInts, int Num, const char *pStr)
{
int Index = 0;
while(Num)
{
char aBuf[4] = {0,0,0,0};
for(int c = 0; c < 4 && pStr[Index]; c++, Index++)
aBuf[c] = pStr[Index];
*pInts = ((aBuf[0]+128)<<24)|((aBuf[1]+128)<<16)|((aBuf[2]+128)<<8)|(aBuf[3]+128);
pInts++;
Num--;
}
// null terminate
pInts[-1] &= 0xffffff00;
}
一個字符串轉換爲int []
在我的C#客戶端我收到:
int[4] { -14240, -12938, -16988, -8832 }
如何將數組轉換回一個字符串? 我不想使用不安全的代碼(例如指針) 我的任何嘗試都會導致無法讀取的字符串。
編輯: 這裏是我的計算策略之一:
private string IntsToString(int[] ints)
{
StringBuilder s = new StringBuilder();
for (int i = 0; i < ints.Length; i++)
{
byte[] bytes = BitConverter.GetBytes(ints[i]);
for (int j = 0; j < bytes.Length; j++)
s.Append((char)(bytes[j] & 0x7F));
}
return s.ToString();
}
我知道我需要照顧字節序的,但作爲服務器是我的本地計算機和服務器上也運行,我認爲這是不是問題。
我的另一個嘗試是使用一個結構顯式佈局和相同的FieldOffset整數和字符,但它也不起作用。
結果字符串的外觀應該如何? –
到目前爲止您嘗試過什麼?請分享你的代碼,我期待已經做了所有位移的事情 – sll
你想返回一個字符串數組還是單個字符串(csv) –