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请不要添加与问题无关的语言标签请不要添加与问题无关的语言标签