C++,怎么把字符转换成数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++,怎么把字符转换成数字相关的知识,希望对你有一定的参考价值。

怎么把字符转换成数字,比如现在有一个字符 '7' ,这个7现在是一个字符,我想要把他转换成int型的 7。怎么弄

一、可以用C++的stringstream。 主要原因是操作简单。

数字转字符串,int float类型 同理

字符串转数字,int float类型 同理

二、使用sprintf()函数

char str[10]; 
int a=1234321;

sprintf(str,”%d”,a);

char str[10]; 
double a=123.321;

sprintf(str,”%.3lf”,a);

char str[10]; 
int a=175;

sprintf(str,”%x”,a);//10进制转换成16进制,如果输出大写的字母是sprintf(str,”%X”,a)

char itoa(int value, char string, int radix); 
同样也可以将数字转字符串,不过itoa()这个函数是平台相关的(不是标准里的)。

三、使用sscanf()函数

char str[]=”1234321”; 
int a; 
sscanf(str,”%d”,&a); 
…………. 
char str[]=”123.321”; 
double a; 
sscanf(str,”%lf”,&a); 
…………. 
char str[]=”AF”; 
int a; 
sscanf(str,”%x”,&a); //16进制转换成10进制。

另外也可以使用atoi(),atol(),atof()。

拓展资料:

以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

参考技术A

1、可以用atoi函数。

例:char a='7';
int num=atoi(a);

2、如果是很多数字,字符串形式的话按下列方式转成Int型。

例:String s="1234";
int i = Integer.parseInt(s);

拓展资料

C++对C的“增强”,表现在六个方面:

(1) 类型检查更为严格。

(2) 增加了面向对象的机制。

(3)增加了泛型编程的机制(Template)。

(4)增加了异常处理。

(5)增加了运算符重载。

(6)增加了标准模板库(STL)。

面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。

学习C++,既要会利用C++进行面向过程的结构化程序设计,也要会利用C++进行面向对象的程序设计,更要会利用模板进行泛型编程。

参考技术B

C++可以通过 atoi函数把字符转换成数字。

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++之父Bjame Stroustrup最近说C++11就像一个新语言,的确,C++11核心已经发生了巨大的变化,它现在支持Lambda表达式,对象类型自动推断,统一的初始化语法,委托构造函数,deleted和defaulted函数声明nullptr,以及最重要的右值引用。

    头文件:stdlib.h   函数原型:int atoi(const char *nptr);

    #include <stdlib.h>
    #include <stdio.h>

    int main(void)

    int n;
    char *str = "12345";
    n = atoi(str);
    printf("int=%d\\n",n);
    return 0;

    字符串转数字:使用sscanf()函数

    char str[]=”1234321”; 
    int a; 
    sscanf(str,”%d”,&a); 
    …………. 
    char str[]=”123.321”; 
    double a; 
    sscanf(str,”%lf”,&a); 
    …………. 
    char str[]=”AF”; 
    int a; 
    sscanf(str,”%x”,&a); //16进制转换成10进制

    另外也可以使用atoi(),atol(),atof().

参考技术C

sprintf 字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。

sscanf 读取格式化的字符串中的数据。

1. 可以用sprintf函数将数字转换成字符串

int H, M, S;

string time_str;

H=seconds/3600;

M=(seconds%3600)/60;

S=(seconds%3600)%60;

char ctime[10];

sprintf(ctime, "%d:%d:%d", H, M, S); // 将整数转换成字符串

time_str=ctime; // 结果

拓展资料

C++对C的“增强”,表现在六个方面:

(1) 类型检查更为严格。

(2) 增加了面向对象的机制。

(3)增加了泛型编程的机制(Template)。

(4)增加了异常处理。

(5)增加了运算符重载。

(6)增加了标准模板库(STL)。

面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。

学习C++,既要会利用C++进行面向过程的结构化程序设计,也要会利用C++进行面向对象的程序设计,更要会利用模板进行泛型编程。

参考技术D

标准库中定义了to_string(val);可以将其它类型转换为string。还定义了一组stoi(s,p,b)、stol(s,p,b)、stod(s,p,b)等转换函数,可以函数,可以分别转化成int、long、double等.
stoi(s,p,b);stol(s,p,b);stoul(s,p,b);stoll(s,p,b);stoull(s,p,b); 返回s的起始子串(表示整数内容的字符串)的数值,返回值的类型分别为:int、long、unsigned long、long long、unsigned long long.

其中b表示转换所用的基数,默认为10(表示十进制).p是size_t的指针,用来保存s中第一个非数值字符的下标,p默认为0,即函数不返 回下标.


stof(s, p); stod(s, p); stold(s, p); 返回s的起始子串(表示浮点数内容)的数值,返回值的类型分别是float、double、long double.参数p的作用与整数转换函数中的一样。

剑指offer——把字符串转换成整数(c++)

题目描述
请你写一个函数StrToInt,实现把字符串转换成整数这个功能。
当然,不能使用atoi或者其他类似的库函数。

示例 1:
输入: " -42"
输出: -42
解释: 第一个非空白字符为 ‘-‘, 它是一个负号。

示例 2:
输入: "4193 with words"
输出: 4193
解释: 转换截止于数字 ‘3‘ ,因为它的下一个字符不为数字。

示例 3:
输入: "words and 987"
输出: 0
解释: 第一个非空字符是 ‘w‘, 但它不是数字或正、负号。因此无法执行有效的转换。

示例 5:
输入: "-91283472332"
输出: -2147483648
解释: 数字 "-91283472332" 超过 32 位有符号整数范围。 因此返回 INT_MIN (−231) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
注意:

忽略所有行首空格,找到第一个非空格字符,可以是 ‘+/−’ 表示是正数或者负数,紧随其后找到最长的一串连续数字,将其解析成一个整数;
整数后可能有任意非数字字符,请将其忽略;
如果整数长度为0,则返回0;
如果整数大于INT_MAX(2^31 − 1),请返回INT_MAX;如果整数小于INT_MIN(−2^31) ,请返回INT_MIN;
class Solution
public:
int strToInt(string str)
if(str.empty())
return 0;
int flag = 1, i = 0, n = str.size(http://www.my516.com);
long long res = 0;
while(i < n && str[i] == ‘ ‘)
++i;
if(i >= n)
return 0;
if(str[i] == ‘-‘)
flag = -1;
++i;

if(str[i] == ‘+‘)
if(flag == -1)
return 0;
else
++i;

while(str[i] >= ‘0‘ && str[i] < ‘9‘)
res = res * 10 + str[i] - ‘0‘;
++i;
if(res > INT_MAX)
break;

res *= flag;
if(res > INT_MAX)
return INT_MAX;
if(res < INT_MIN)
return INT_MIN;
return res;

;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

---------------------

以上是关于C++,怎么把字符转换成数字的主要内容,如果未能解决你的问题,请参考以下文章

在SQL语句里面如何将字符型转换成数字型?

在SQL语句里面如何将字符型转换成数字型?

在SQL语句里面如何将字符型转换成数字型?

C++,怎么把字符转换成数字

字符的艺术——ASCII Art(附字符画大全)

mysql字符串转换成字典