2011-08-27 25 views
2

我知道如何使用的iostream轉換包含數字爲整數的字符數組:C++如何將數組的最後4個字符轉換爲整數?

char[] ar = "1234"; 
int num; 
ar >> num; 

,但我怎麼會是數組的最後四個字符轉換爲int?

char[] ar = "sl34nfoe11intk1234"; 
int num; 
????; 

有沒有辦法指向數組中的一個元素,並從那裏開始流式傳輸?
理想我將開始從最大數組大小的流 - 4

+5

確定'AR >> num'是有效的C++代碼?似乎你忘記了串流。 –

+3

'char [] ar'也是無效的C++。 – wilhelmtell

+0

@Christian,男人,你可以簡單地告訴他他錯了。 :)他一定是一個初學者,誰也不知道字符串操作太.. –

回答

5
char* p = ar + strlen(ar) - 4; 

現在p點至"1234"'1',你可以喂p到流。

+0

daaamn 你好 – stack356

1

什麼

char[] ar = "sl34nfoe11intk1234"; 
int num; 
(ar + strlen(ar) - 4) >> num; 
+1

似乎你只是複製了他的錯誤(忘記流)。 –

+0

我認爲他的第一個例子正在工作。 (使用一些隱式聲明,因爲他知道如何...)我的觀點與其他人一樣,也指出:增加指向最後一個字符的指針。 – erikH

+0

感謝resp – stack356

2
char ar[] = "abc1234"; 
std::istringstream ss(ar + 3); 
int n = 0; 
ss >> n; 

更重要的是,使用std::string

std::string ar("abc1234"); 
std::istringstream ss(ar.substr(ar.size() - 4)); 
+0

謝謝你的好例子 – stack356

相關問題