Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C++;?_C++_Arrays_String_C++17 - Fatal编程技术网

C++ 如何在C++;?

C++ 如何在C++;?,c++,arrays,string,c++17,C++,Arrays,String,C++17,我有一个非均匀空间分隔的整数字符串,我想对元素进行一些算术运算,所以我决定首先将字符串转换为整数数组。以下是我的做法: string s; //let s="1 2 30 54 899 2 7 3 1"; cin>>s; int n=s.length(); vector<int>arr(n); for(int i=0;i<n;i++) { i

我有一个非均匀空间分隔的整数字符串,我想对元素进行一些算术运算,所以我决定首先将字符串转换为整数数组。以下是我的做法:

    string s;                //let s="1   2 30 54  899 2 7   3 1";
    cin>>s;
    int n=s.length();
    vector<int>arr(n);

    for(int i=0;i<n;i++)
    {
        if(s[i]==' ')continue;
        else{
            arr.push_back(s[i]-'0');
        }
    }
    for(int i=0;i<n;i++)
    {
        cout<<arr[i]<<endl; // arr should be{1,2,30,54,899,2,7,3,1};
    }
字符串s//设s=“1 2 30 54 899 2 7 3 1”;
cin>>s;
int n=s.长度();
矢量阵列(n);

对于(inti=0;i您将循环所有元素并使用
stoi
进行转换。
然后将其放入int数组。

您将循环所有元素并使用
stoi
进行转换。 然后将其放入int数组中

这种方法有什么错

  • operator>
    只提取满足条件的
    std::cin
    中第一个遇到的字符,因此
    s
    不可能初始化为程序中包含空格的字符串
  • 假设字符串
    n
    的长度应该是数组的长度。字符数不等于空格分隔值的数目
  • 您将
    arr
    初始化为长度
    n
    ,然后使用
    push_back()
    。您应该默认初始化向量,使其开始为空
  • 您可以从字符串中分别读取每个字符,并将每个数字作为一个单独的元素
您可以使用从
std::cin
初始化字符串,并简化格式化整数的提取:

#包括
#包括
#包括
#包括
int main()
{
std::字符串s;
标准::getline(标准::cin,s);
标准:istringstream iss;
std::载体arr;
对于(int i;iss>>i;){
arr.推回(i);
}
用于(自动和验证:arr)
{
标准::cout
这种方法有什么错

  • operator>
    只提取满足条件的
    std::cin
    中第一个遇到的字符,因此
    s
    不可能初始化为程序中包含空格的字符串
  • 假设字符串
    n
    的长度应该是数组的长度。字符数不等于空格分隔值的数目
  • 您将
    arr
    初始化为长度
    n
    ,然后使用
    push_back()
    。您应该默认初始化向量,使其开始为空
  • 您可以从字符串中分别读取每个字符,并将每个数字作为一个单独的元素
您可以使用从
std::cin
初始化字符串,并简化格式化整数的提取:

#包括
#包括
#包括
#包括
int main()
{
std::字符串s;
标准::getline(标准::cin,s);
标准:istringstream iss;
std::载体arr;
对于(int i;iss>>i;){
arr.推回(i);
}
用于(自动和验证:arr)
{

std::cout请不要添加与问题无关的语言标签请不要添加与问题无关的语言标签