Jako ciekawostkę, czasem można też tak, najpierw zapisałem sobie jak rozwiązanie przykładowo mogłoby wyglądać w javascript
[ on-line ]
const a = '23 sokol czarny';
const b = parseInt(a);
const c = a.replace(b, '').trim();
console.log(b, c);
następnie spróbowałem uzyskać podobny zapis (lub funkcjonalność) w c++
[ on-line ]
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "23 sokol czarny";
int b = stoi(a);
string c = a.substr(to_string(b).length());
while (c[0] == ' ') c.erase(0, 1);
cout << b << "|" << c << endl;
return 0;
}