2013-06-11 36 views
6

Giả sử chúng ta có một chuỗi kiểu C trong C++ theo định dạng [4 letters] [number] [number] .... Ví dụ: chuỗi có thể trông giống như:C++ - trích xuất các số từ một chuỗi

abcd 1234 -6242   1212 

Cần lưu ý rằng chuỗi được mong đợi có quá nhiều khoảng trống (như đã xem ở trên).

Tôi làm cách nào để trích xuất ba số này và lưu trữ chúng trong một mảng?

+0

Tôi nghĩ rằng bạn sẽ phải dựa vào việc sử dụng các không gian như delimiters –

+0

@ user2064000 để đáp ứng với 'phản đối' nêu ra trong các ý kiến ​​tại câu trả lời của tôi, tôi muốn đề nghị bạn nhìn vào phía bên phải của màn hình này và làm theo một số liên kết "Liên quan" ... – sehe

Trả lời

11

Một công việc cho stringstreams, thấy nó sống: http://ideone.com/e8GjMg

#include <sstream> 
#include <iostream> 

int main() 
{ 
    std::istringstream iss(" abcd 1234 -6242   1212"); 

    std::string s; 
    int a, b, c; 

    iss >> s >> a >> b >> c; 

    std::cout << s << " " << a << " " << b << " " << c << std::endl; 
} 

Prints

abcd 1234 -6242 1212 
+6

@phresnel Vâng, bạn biết đấy ... Tôi không aroun mới d ở đây. Một số người học theo một trong hai cách. Tôi có thể đảm bảo với bạn rằng (a) những người học háo hức *** sẽ nhận được những hướng dẫn quan trọng từ câu trả lời này (b) những người không, sẽ không "nhận được nó" từ một câu trả lời _educational_. Tóm lại, Stackoverflow không dành cho việc dạy kèm sách giáo khoa. Đó là về các câu trả lời tình nguyện để unstuck khác lập trình/chia sẻ kinh nghiệm. _Cảm thấy tự do bỏ qua cả câu hỏi và câu trả lời nếu đó không phải là tách trà của bạn._ Cảm ơn bạn – sehe

+1

@ not-sehe: Tôi đã hy vọng rằng bạn có thể thêm ít nhất một số giải thích, nhưng nhận xét cuối cùng của bạn không sai . (sidenote: Tôi đã xóa nhận xét của mình) –

Các vấn đề liên quan