2016-01-06 22 views
-7
char *s = "1234560000000000078999"; 
unsigned int ss = strlen(s); 
vector<int> num; 
unsigned int i; 
for (i=0;i<ss;i+=2) 
{ 
    num.push_back((s[i] - '0')*10 + (s[i+1] - '0')); 
} 

我試圖凝聚僅包含數字的字符串,並將其存儲在一個INT矢量 的想法是採取每對夫婦的數字詮釋的字符串,並將其combain成一個整數 我遇到的問題是以零開頭的數字,例如1107只存儲爲117和1100爲110 另一個問題是偶數; 任何sultions請 謝謝如何凝聚了一串號碼

+1

凝聚?你什麼意思? – YSC

+0

減少每個字符佔用8位的字符串浪費的大小我希望每個對需要8位 –

+0

首先,你應該重寫'for'循環的上界,它應該是for(i = 0; i

回答

2

1107確實,確實,獲得當顯示值,顯示2個數字或你將不會看到0領先於同07.同樣的事情存儲爲11和07。 1100.

至於偶數,是的,你必須仔細看看你正在處理的位數。如果ss很奇怪,只需存儲第一個數字即可。然後成對處理剩下的部分。因此,117將基本上保存爲01和17.