C++ 将字符串中的值分配给数组或变量

C++ 将字符串中的值分配给数组或变量,c++,string,integer,C++,String,Integer,我有一个字符串: std::string values= "1 2 3 4 5"; 我有一些变量: int v1{}; int v2{}; int v3{}; int v4{}; int v5{}; 如何将值字符串中的数字1、2、3、4、5分配给变量v1、v2、v3、v4、v5?下面是使用Java实现上述查询的代码片段: import java.util.*; 公开课考试{ public static void main(String[] args) {

我有一个字符串:

std::string values= "1 2 3 4 5";
我有一些变量:

int v1{};
int v2{};
int v3{};
int v4{};
int v5{};

如何将值字符串中的数字1、2、3、4、5分配给变量v1、v2、v3、v4、v5?

下面是使用Java实现上述查询的代码片段:

import java.util.*;
公开课考试{

public static void main(String[] args) {
    

    String var = "1,2,3,4,5";
    List<String> newList = Arrays.asList(var.split(","));
    int v1 = Integer.parseInt(newList.get(0));
    int v2 = Integer.parseInt(newList.get(1));
    int v3 = Integer.parseInt(newList.get(2));
    int v4 = Integer.parseInt(newList.get(3));
    int v5 = Integer.parseInt(newList.get(4));
    System.out.println("v1: " + v1 + "\nv2: " + v2 + "\nv3: " + v3 + "\nv4: " + v4 + "\nv5: " + v5);
}
publicstaticvoidmain(字符串[]args){
字符串var=“1,2,3,4,5”;
List newList=Arrays.asList(var.split(“,”);
intv1=Integer.parseInt(newList.get(0));
intv2=Integer.parseInt(newList.get(1));
intv3=Integer.parseInt(newList.get(2));
intv4=Integer.parseInt(newList.get(3));
intv5=Integer.parseInt(newList.get(4));
System.out.println(“v1:+v1+”\nv2:+v2+”\nv3:+v3+”\nv4:+v4+”\nv5:+v5”);
}

}

您可以使用成员函数对您的
值进行所需操作
字符串隔离每个数字的起始数字,并使用获取要传递的数字子字符串,以将数字字符串转换为数值

通过将单个转换值保存到单个变量中,而不是将每个转换值添加到容器(如
std::vector
)中,您可以使事情变得更加困难。您可以手动执行此操作,它只需要您保留一个计数器,该计数器将分配给下一个变量,然后将计数器值与代码块进行逻辑协调,从而将转换后的值分配给该变量。
开关(计数器){…}
与其他任何东西一样有意义

要向下处理字符串,可以使用成员函数(将空格跳到数字的起始位,然后使用查找数字后的下一个空格)——定义要转换的数字子字符串的开始和结束位置

有许多其他方法可以实现这一点,但将上述内容放在一起,您可以:

#包括
#包括
内部主(空){
字符串值{“12345”};
int v1{},v2{},v3{},v4{},v5{};
constexpr int nvars=5;/*变量数*/
大小n=0,pos=0;/*变量计数器&字符串中的pos*/
/*当n小于nVAR时循环查找字符串中数字的开头*/
而(n默认值:std::cerr不执行此操作;而是按空格分割输入,并将文本编号存储在集合(如列表)中。my函数将字符串作为参数,字符串的格式为“1 2 3 4 5”;我必须将字符串中的数字分配给int变量v1、v2、v3、v4、v5。如何将此格式字符串的内容添加到变量中?请记住,在
中,
'1'
'1'
的ASCII数字,其值为
49
而不是
1
,请参见。我仍然找不到解决方案。java java C++。你是否得到了帮助?如果是这样,请考虑一下。我在MehmetB上的答案是“不支持”,因为你的答案可能对Java有帮助,OP使用C++。这两个语法之间的差别很大。很抱歉,我不知道它是C++,我必须使用空间而不是逗号。问题是用C++而不是用Java。