从字符串

时间:2017-11-30 03:50:15

标签: c++ arrays string integer

我想使用字符串类,从字符串中提取一些信息。 给定字符串:< 12,Apple>,< 20,Orange>,< 49,iPhone>

我想让12,20,49成为一个int数组。 这意味着[0] = 12,a [1] = 20,a [2] = 49。

让Apple,Orange,iPhone成为String数组。 这意味着b [0] =“Apple”,b [1] =“Orange”b [2] =“iPhone”

我该怎么办?

1 个答案:

答案 0 :(得分:1)

假设字符串遵循格式<int,string>,...。请在下面找到伪代码:

Loop through the string `str` and
{
    smaller_sign_pos = str.find('<', prev_pos)
    entry_comma_pos = str.find(',', smaller_sign_pos+1)
    greater_sign_pos = str.find('>', entry_comma_pos+1)

    if (all pos values are not `npos`)
    {
        int_value = atoi(str.substr(smaller_sign_pos+1, entry_comma_pos-smaller_sign_pos-1))
        str_value = str.substr(entry_comma_pos+1, greater_sign_pos-entry_comma_pos-1)
        prev_pos = greater_sign_pos+1
        append int_value to int array
        append str_value to string array
        optional: you can check if the comma after '>' exists
    }
    else
    {
        break or set the end of loop flag
    }
}