2012-03-18 39 views
0

我想在C++中實現以下邏輯。這裏x和y是2個整數類型的變量。 xs和ys是2個字符串類型的變量。我希望將整數轉換爲字符串,然後繼續處理邏輯。不正確的int轉換爲C++中的字符串

def isGoodPoint(x,y): 
    xs=str(abs(x)) 
    ys=str(abs(y)) 
    xsum=0 
    ysum=0 
    for c in xs: 
     xsum=xsum+int(c) 
    for c in ys: 
     ysum=ysum+int(c) 
    if xsum+ysum <=19: 
     return True 

我的C++源代碼:

不知何故,轉換沒有工作,我得到的X和Y的值不正確。例如:如果我的函數調用是:isGoodPoint(0,0),那麼在調試模式下,xs和ys中的值就像45和50或某些奇怪的值。實際上xs和ys應該有0作爲它們的值。

我錯過了什麼嗎?

+1

你能發佈一個有效的編譯C++代碼嗎? – 2012-03-18 20:08:46

+0

你確定它是'xs'和'ys'有奇怪的值嗎?請再檢查一次。 – 2012-03-18 20:09:10

+0

'def isGoodPoint(x,y):'這是不正確的,並且海峽C++語法 – 2012-03-18 20:09:35

回答

4

你可能想要的是添加每個數字的數字。你現在正在做的是添加每個數字的ASCII值。如果要添加數字,則必須減去第一個數字的ASCII值:

for each (char c in xs) 
    xsum = xsum + (c - '0'); 

for each (char c in ys) 
    ysum = ysum + (c - '0'); 

應該這樣做。在你的代碼,這個表達式:

xsum = xsum + int(c); 

創建一個int將持有的價值c。由於c是一個字符,可以轉換爲int,因此最終得到的結果只是包含該字符的ASCII值的int