C++中怎么把字符串string型的数字转换成整型int型的数字?

如题所述

 int str2int( string str)
 {
    int i,len = str.size(),num = 0 ;

    i = 0 ;   
    if (str[ 0 ] == ' - ' )
       i = 1 ;
   
    while (i < len)
    {
       num = num * 10 + ( int )(str[i] - ' 0 ' );
       i ++ ;                                                                                                                                               
    } 
 
    if (str[ 0 ] == ' - ' )
       num *= - 1 ;

    return num;
}

 string int2str( int num)
 {
    if (num == 0 )
return " 0 " ;

    string str = "" ;
    int num_ = num > 0 ? num : - 1 * num;

    while (num_)
    {
       str = ( char )(num_ % 10 + 48 ) + str;
num_ /= 10 ;
    } 
 
    if (num < 0 )
       str = " - " + str;

    return str;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-08-11
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main(){
string s;
stringstream temp;
int num;
cin>>s;
temp<<s;
temp>>num;
cout<<num+1;
}

第2个回答  2016-05-19

有一定C++基础的人不难写出字符串到整数的转换代码

如果是初学者,考虑使用atoi函数(包含stdlib.h或者cstdlib函数,事实上,包含iostream就够了)


原型:

int atoi(const char *str);


用法:

std::string str="789";
int num=atoi(str.c_str());
std::cout<<num;

或者:

char str[]="789";
int num=atoi(str);
std::cout<<num;

本回答被提问者和网友采纳
第3个回答  2016-05-21
string str("123");
int num = atoi(str.c_str());
第4个回答  2016-05-30
我就不写函数了哈,你直接字符‘数字’-‘0’就得到数字了,例如字符4转成数字4则有:int num; num = '4'-'0'; num 就是数字4啦。采纳我哦

c++ string 字面值与 int 互转的几种方法
c++ string 字面值与 int 互转的方法在C++中,字符串(string)与整数(int)的相互转换有多种方式。以下是主要的方法:1. 从string到int 使用 atoi 函数: 这是C语言的函数,但C++中可用其基础功能。例如:int num = atoi("123");strtol 函数: 更高级的选项,如 int num = strtol("123", nu...

c++ 如何将string 转化int的方法
1、采用最原始的string, 然后按照十进制的特点进行算术运算得到int,但是这种方式太麻烦,这里不介绍了。2、采用标准库中atoi函数。string s = "12";int a = atoi(s.c_str());对于其他类型也都有相应的标准库函数,比如浮点型atof(),long型atol()等等。3、采用sstream头文件中定义的字符串流对象...

c++中如何将string类型转换为int类型?
在C++中将string类型转换为int类型,主要有以下几种方法:1. C语言风格函数 atoi与strtol是两种常见的转换方式。这两个函数从字符串开始寻找数字或者正负号或者小数点,遇到非法字符终止。如果字符串不是数字,或者含有非数字字符,函数不会报异常,直接输出0。例如:2. C++风格 在C++中,可以使用stoi来转...

C++ 中字符串 string 与 整数 int 相互转换的方法
C++中,字符串(string)与整数(int)之间的转换非常直观。首先,从string到int,有多种方法可供选择:利用标准库函数,如`atoi()`,它能将字符串转换为整数。对于其他类型,如浮点数的`atof()`,或者long型的`atol()`,也有相应的函数。另一种方式是借助`sstream`库中的字符串流对象,通过定义一个`...

c++中string类型如何转换成int类型
)\/\/可能是EINVAL{\/\/不能转换成一个数字}2、 在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换)include <sstream>#include <string>std::string text = "152";int number;std::stringstream ss;ss << text;\/\/可以是其他数据类型ss >> number; \/\/string -> intif...

C++中怎样把一个字符串数组中的数 转换成整形 数据 如:string s=“12...
int main() { string s="1234"; int n; n=atoi(s.c_str()); \/\/string对象转成char *,再调用atoi函数 cout<<n<<endl; } 追问 这个确实方便,但是如果我想把s后面还有其他字符(非数字)如:string s="1234sdffs";而我只想把前四个(1234)转换成整形,怎么弄! 追答 也比较简单,把其中的数字提取出来放...

C++ 中如何把一个string 中的几串数字都转化成int?
int main(){ string s="123 222 555 333 666 77765";int k=0,j=0,b[20],x=0;char a[11][20],t[50];for(string::iterator iter = s.begin(); iter!=s.end(); iter++) \/\/使用迭代器 t[x++]=*iter;\/\/将string类中的字符串存入数组t中;for(int i=0;i<strlen(t);i++...

c++中如何将一串数字string类转换成整型,
一、函数名:atoi 二、函数声明:int atoi(const char *nptr);三、头文件:C语言中用stdio.h。C++中用cstdio。四、功能:将字符串nptr中的字符转成数字并返回。具体过程为:参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \\0) 字符时...

c++中字符串数组转化成int型数组
字符串数组,里面需要存储的是合法的整型变量的形式,如“1234”这样的,才有可能转换为int型数组。转换时,可以使用sscanf函数来实现。代码如下:void convert_string_to_int(string *s, int *a, int len){ int i; for(i = 0; i < len; i ++) sscanf(s[i].c_str(), "%d",...

c++字符串string转int
getline(cin,string,ch):使用的时候需包含“#include ”读取一行,并保存到string对象中,ch默认为'\\n',可以省略。把遇到的第一个字符ch之前的内容读回来,字符ch(回车)被从缓冲区取出,但未保存到string中。如果缓冲区第一个字符就是ch(回车),会读取到空行,并且ch(回车)被从缓冲区取出。

相似回答