c++字符串如何转化为数字?

我用c++从文件中读到一个字符串"12.32123525.336.366"内容全是数字形式,怎么把它们转化为一个实数数组是visualC++... 我用c++从文件中读到一个字符串
"12.32 12 35 25.3 36.366"
内容全是数字形式,怎么把它们转化为一个实数数组
是visual C++
展开
 我来答
leeps_my
推荐于2018-02-28 · TA获得超过807个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:0
展开全部
你可以叫 stringstream 和 vector 帮忙。
下面的代码里 dbl_array 既是你要创建的实数数组(real 代表你读到的字符串)。

#include<vector>
#include<string>
#include<sstream>

using namespace std;

int main( ) {
    string real = "12.32 12 35 25.3 36.366";
    stringstream ss( real );
    vector< double > vd;

    // Collect all real numbers.
    double temp;
    while( ss >> temp )
        vd.push_back( temp );

    // Create the array.
    double *dbl_array = new double[ vd.size( ) ];
    for( int i = 0; i < vd.size( ); ++i )
        dbl_array[ i ] = vd[ i ];
}

值得一提的是,vector 可以被当成数组来用,而且它比数组优秀很多,所以你大可去掉上面的代码里多余的最后一段,直接用 vector。
幸巴达
2006-03-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2485万
展开全部
假设原字符串为s,用两个函数,两个数组a,b;
一个函数将字符串里的单个字符转换成0-9这几个数字。将字符逐个读入a数组,遇到“.”则将点之前的数字合并读入b数组,如:a[2]='.',b[1]=a[1]+a[0]*10,然后将a数组清空继续读入“.”后面的数,直到遇到空格,如:a[1]=a[1]+s[3]/10; a[2]=a[1]+s[4]/1e2; 然后将a[2]加到b[1]里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chang290
2006-03-01 · TA获得超过517个赞
知道小有建树答主
回答量:452
采纳率:100%
帮助的人:0
展开全部
对于每一个字符,如果是 >='0' && <='9' 就把这个字符 减去 '0' 就能得到相应的数字了..而对于如小数点,加号,减号这些东西只要判断 =='+' 然后使用原来的旧可以了.具体实现自己做.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
winxpliyou
2015-09-21 · 超过65用户采纳过TA的回答
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:159万
展开全部
atoi函数可以将char类型字符串转换为数字,_wtoi可以将unicode字符串转换为数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友54fd645
2015-09-09 · TA获得超过426个赞
知道答主
回答量:40
采纳率:100%
帮助的人:19.5万
展开全部
调用函数
strtol()
或者atoi()
传对应参数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式