在c+中将字符串的某些部分转换为int/double+;
我正在尝试将字符串的某些数字转换为int/double。但我犯了个错误。我必须从字符串中找到数字,然后求和 输入示例 预期结果 我试着这样做:在c+中将字符串的某些部分转换为int/double+;,c,C,我正在尝试将字符串的某些数字转换为int/double。但我犯了个错误。我必须从字符串中找到数字,然后求和 输入示例 预期结果 我试着这样做: #include <iostream> #include <string> #include <stdio.h> #include <stdlib.h> #include <ctype.h> using namespace std; string s="96h11k4959q615948s50
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
using namespace std;
string s="96h11k4959q615948s50922o38h1453ij38w73413d5577lzrqw3780b389750vf100zd29z73j5wh73l6965n85vm77cw10awrjr29265289222238n10013uk10062f9449acbhfgcm35j78q80";
double sum;
int d;
int main()
{
for(int i=140;i<s.size();i++)
{
if(isdigit(s[i]))
{
cout<<s[i]<<endl;
//d= atoi(s[i].c_str());
//another try.
/*istringstream buffer(s[i]);
buffer >> d;
cout<<"int "<<d<<endl;*/
}
}
return 0;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
字符串s=“96H11K4959Q615948S50922O38H1453IJ38W73413D5577LZRQW3780B389750VF100ZD29Z73J5WH73L6965N85VM77CW10AWJR2265289222238N10013UK10062F9449ACBHFGCM35J78Q80”;
双和;
int d;
int main()
{
对于(inti=140;i尝试以下方法:
for(int i=0;i<s.size();i++)
{
// Read the number
if(isdigit(s[i]))
{
cout<<s[i]<<endl;
d = d * 10 + s[i]-'0' ;
}
else //add it when a separator is found
{
sum += d;
d = 0;
}
}
for(inti=0;i尝试以下方法:
for(int i=0;i<s.size();i++)
{
// Read the number
if(isdigit(s[i]))
{
cout<<s[i]<<endl;
d = d * 10 + s[i]-'0' ;
}
else //add it when a separator is found
{
sum += d;
d = 0;
}
}
for(inti=0;i尝试以下方法:
for(int i=0;i<s.size();i++)
{
// Read the number
if(isdigit(s[i]))
{
cout<<s[i]<<endl;
d = d * 10 + s[i]-'0' ;
}
else //add it when a separator is found
{
sum += d;
d = 0;
}
}
for(inti=0;i尝试以下方法:
for(int i=0;i<s.size();i++)
{
// Read the number
if(isdigit(s[i]))
{
cout<<s[i]<<endl;
d = d * 10 + s[i]-'0' ;
}
else //add it when a separator is found
{
sum += d;
d = 0;
}
}
for(int i=0;i您必须首先检查字符是否为数字。您可以使用ascii表执行此操作。数字范围为48到57(ascii)。您必须首先检查字符是否为数字。您可以使用ascii表执行此操作。数字范围为48到57(ascii).您必须首先检查字符是否为数字。您可以使用ascii表执行此操作。数字范围为48到57(ascii)。您必须首先检查字符是否为数字。您可以使用ascii表执行此操作。数字范围为48到57(ascii).使用您最初的std::istreamstream
方式:
std::istringstream buffer( s );
char c ;
do{
long d ;
while( buffer >> d ) // Keep on extracting digits until failure
{
sum += d ;
}
buffer.clear( ) ; // clear flags
}while( buffer >> c ) ; // Keep extracting chars
使用您的初始std::istreamstream
方式:
std::istringstream buffer( s );
char c ;
do{
long d ;
while( buffer >> d ) // Keep on extracting digits until failure
{
sum += d ;
}
buffer.clear( ) ; // clear flags
}while( buffer >> c ) ; // Keep extracting chars
使用您的初始std::istreamstream
方式:
std::istringstream buffer( s );
char c ;
do{
long d ;
while( buffer >> d ) // Keep on extracting digits until failure
{
sum += d ;
}
buffer.clear( ) ; // clear flags
}while( buffer >> c ) ; // Keep extracting chars
使用您的初始std::istreamstream
方式:
std::istringstream buffer( s );
char c ;
do{
long d ;
while( buffer >> d ) // Keep on extracting digits until failure
{
sum += d ;
}
buffer.clear( ) ; // clear flags
}while( buffer >> c ) ; // Keep extracting chars
为什么int i=140;
而不是int i=0;
?你会得到什么错误?你不能对字符串求和..dou?Desktop\code\try2.cpp | 22 |错误:在's.std::basic_string::operator[](std::basic_string::size_type)i)),这是非类类型的'char'|..d=atoi(s[i].c|str());我从上一个开始试过..这样我就可以确定它是否工作..如果工作..整个事情都会工作..@sahuWhyinti=140;
而不是inti=0;
?你得到了什么错误?你不能对字符串求和..你做了吗?桌面\code\try2.cpp | 22 |错误:在's.std::basic_string::operator[](((std::basic_string::size_type)i)),对于d=atoi(s[i].c_str(),它是非类类型“char”|...);我从上一个开始试过..这样我就可以确定它是否工作..如果工作..整个事情都会工作..@sahuWhyinti=140;
而不是inti=0;
?你得到了什么错误?你不能对字符串求和..你做了吗?桌面\code\try2.cpp | 22 |错误:在's.std::basic_string::operator[](((std::basic_string::size_type)i)),对于d=atoi(s[i].c_str(),它是非类类型“char”|...);我从上一个开始试过..这样我就可以确定它是否工作..如果工作..整个事情都会工作..@sahuWhyinti=140;
而不是inti=0;
?你得到了什么错误?你不能对字符串求和..你做了吗?桌面\code\try2.cpp | 22 |错误:在's.std::basic_string::operator[](((std::basic_string::size_type)i)),它是非类类型“char”|..对于d=atoi(s[i].c_str()),我从最后一个开始尝试..这样我就可以确定它是否工作..如果工作..整个事情都会工作..@sahus[i]
返回一个字符。.c_str
既不需要也不可用。获取此错误….C:\Desktop\code\try2.cpp | 20 |错误:从“char”到“const char*”的转换无效[-fppermission]@mishir.ali第20行是什么?@mishir.ali顺便问一句,如果答案有帮助,请将其标记为选定答案;s[i]
返回一个字符。.C\u str()
既不需要也不可用。获取此错误….C:\Desktop\code\try2.cpp | 20 |错误:从“char”到“const char*”的转换无效[-fppermission]@mishir.ali第20行是什么?@mishir.ali顺便问一句,如果答案有帮助,请将其标记为选定答案;s[i]
返回一个字符。.C\u str()
既不需要也不可用。获取此错误….C:\Desktop\code\try2.cpp | 20 |错误:从“char”到“const char*”的转换无效[-fppermission]@mishir.ali第20行是什么?@mishir.ali顺便问一句,如果答案有帮助,请将其标记为选定答案;s[i]
返回一个字符。.C\u str()
既不需要也不可用。获取此错误…C:\Desktop\code\try2.cpp | 20 |错误:从“char”到“const char*”的转换无效[-fppermission]|@mishir.ali第20行是什么?@mishir.ali顺便问一下,如果答案有帮助,请将其标记为选定答案;)