böyle dizesi vardır kelimelerin & sayıların dizesini ayrıştırmak için: '123plus43times7' numaralı sözlükten kelimeleri izlemektedirDize Akış ++
.
StringStream >> number
Ben sayı elde edebilirsiniz:
ben >>
operatörü kullanarak int/numaralar elde anlıyoruz. Bununla birlikte, Akış hala onun içinde bir sayıya sahiptir. Numara uzunluğu bilinmiyorsa sayıyı nasıl çıkarabilirim veya sayı uzunluğunu bulmalıyım ve sonra yeni bir String Stream oluşturmak için str.substr() öğesini kullanabilir miyim? C++ STL String ve SStream kullanarak bunu yapmak için daha iyi bir yöntem gerçekten takdir edilecektir.
yapmanın bir yolu var kullanmak arasındaki boşluk ekleyebilirsiniz std :: string ve ardı ardına gelen rakamlar ve blok bloklarının bloklarına ayırmak için karakterlerin üzerinde yineleyin. Blokları ayırdığınızda, std :: atoi() 'ile rakam dizilerini tam sayılara dönüştürebilirsiniz. –
@ DanMašek doğru. Bir numara aldığınızda, bir "dize" ve ">>" ile bir "dize" kaplarsınız, sadece boşlukta duracaktır. Mektuplarınızı, numaralarınızı ve yoluna çıkan diğer her şeyi alacaktır. – user4581301