Using regular expression
If your input is assured to resemble "xxxx-xxxx" where 'x' represents a digit, you can simply ultilize the following function:
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
    string input = "9349-2341";
    // This pattern matches any string begining with 4 digits and ending with 4 digits, both parts seperated by a slash
    string pattern = "([0-9]{4})-[0-9]{4}";
    smatch matcher;
    regex prog (pattern);
    if (regex_search(input, matcher, prog))
    {
        auto x = matcher[1];
        cout << x << " " << endl;
        input = matcher.suffix().str();
    }
    else
    {
        cout << "Invalid input!" << endl;
    }
    return 0;
}
As for how to convert string to number, check out this article, from which the following segment is quoted:
string Text = "456";//string containing the number
int Result;//number which will contain the result
stringstream convert(Text); // stringstream used for the conversion initialized with the contents of Text
if ( !(convert >> Result) )//give the value to Result using the characters in the string
    Result = 0;//if that fails set Result to 0
//Result now equal to 456 
Or, simply as followed:
Using sscanf
#include <cstdio>
using namespace std;
int main(int argc, char ** argv)
{
    char input[] = "1234-5678";
    int result, suffix;
    sscanf(input, "%i-%i", &result, &suffix);
    printf("Output: '%i-%i'.\n", result, suffix);
    return 0;
}
You should check out C++ reference websites, such as CPlusPlus.