2013-05-20 353 views
0

我正在寫一個字符串「123124125」轉換爲這樣的長度爲3的整數數組的程序:如何將字符串數字轉換爲int然後char?

int[0] = 123 
int[1] = 124 
int[2] = 125 

假設密文字符串有123124125.

我用:

int number[100]; 
int length1 = ciphertext-> Length; 
int count = 0; 
int count1 = 0; 
char w[100]; 
while (count1 < length1) 
{ 
    number[count] = (ciphertext[count1] * 100) + (ciphertext[count1 + 1] * 10) + ciphertext[count1 + 2]; 
    count++; 
    count1 = count1 + 3; 
} 

然後我想用這個公式來解密它並直接轉換成字符串:

for (int i = 0; i < sizeof(number); i++) 
{ 
    String^demessage += Convert::ToChar(number[i]^(int(key) * 2 + int(key)/int(key)) % 255); 
} 

但它顯示了以下結果:

5553195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195195 -................................ .... 1849664615

我哪裏錯了? 我是否需要先將int轉換爲char,然後繼續執行公式?

謝謝。非常感謝您的幫助。

+0

我認爲你得到的數字是你想要的字符的數字表示。我對API不熟悉,但我會做一些非常簡單的事情,例如確認添加Convert :: ToChar(65)會產生預期的'a'字符。如果你沒有正確使用,你將無法調試其他任何東西。 – cyborg

+0

我可能發現了這個問題,可能是這個公式: number [count] =(ciphertext [count1] * 100)+(ciphertext [count1 + 1] * 10)+ ciphertext [count1 + 2]; count ++; 字符串「123124125」,通過使用上面的公式,它不能得到int [0] = 123,int [1] = 124 int [2] = 125, 和我出來很多方式仍然無法工作,有人可以幫忙嗎? –

回答

0

我是一個C#-developer,所以語法可能有點不正確:

試試這個:

String^demessage = ""; 
for (int i = 0; i < sizeof(number); i++) 
{ 
    demessage += number[i].ToString("000"); 
} 

這樣,每一個數字轉換爲字符串表示。因此number[0]的值爲123將被轉換爲字符串"123"並添加到demessage

+0

Hi, number [count] =(ciphertext [count1] * 100)+(ciphertext [count1 + 1] * 10)+ ciphertext [count1 + 2]其實我想從字符串得到「1」,它不會(1 * 100)但它(50 * 100),我想得到100而不是5000,但不能得到它...我怎麼能得到它「1」,然後可以與100倍? –

+0

我無法跟隨你。請重寫你的問題。在你的問題中,請說明兩件重要的事情:1)你期待的結果和2)你現在正在得到的(不正確的)結果。比我們可以幫助你更好。 –

+0

是的,我會在另一個線程發佈我的新問題...... :) –