C++,怎么把字符转换成数字 c++字符串如何转化为数字?

www.zhiqu.org     时间: 2024-06-13

一、可以用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++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。



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++进行面向对象的程序设计,更要会利用模板进行泛型编程。



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

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

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

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

    int main(void)
    {
    int n;
    char *str = "12345";
    n = atoi(str);
    printf("int=%d
    ",n);
    return 0;
    }

  3. 字符串转数字:使用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进制

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



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++进行面向对象的程序设计,更要会利用模板进行泛型编程。



标准库中定义了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的作用与整数转换函数中的一样。



c++怎么将字符‘3’转换为整型数字3啊?~

字符符型转换整形用强制转换就行,可以参考下面的代码:
char c='B' ;
int a ;
a = (int)c ;
如果是字符'0'到‘9’转成0-9
char c='8' ;
int a ;
a =(int) (c - '0') ;

扩展资料:
C++语言编译系统提供的内部数据类型的强制转换规则如下:
1、执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型等等
2、赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它
3、函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参
参考资料来源:百度百科-强制类型转换

你可以叫 stringstream 和 vector 帮忙。
下面的代码里 dbl_array 既是你要创建的实数数组(real 代表你读到的字符串)。



#include
#include
#include

using namespace std;

int main( ) {
string real = "12.32 12 35 25.3 36.366";
stringstream ss( real );
vector 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。


#苏明素# VC++中如何将字符串转换成整型数字 -
(19772121313): atoi函数是c的函数,它的输入参数是char *类型.你声明了string h变量,string是C++类型,C函数不识别这个C++类型.两种方法1.按照c方式定义h,char h[20];数组数值你可以根据实际情况修改.2.按照C++方式,使用string类的c_str函数,如k=atoi(h.c_str()),c_str函数可以将string类型转换为c的char *类型.

#苏明素# C++怎么实现字符串与数字的互相转换 -
(19772121313): 应该是字符与数字的转换吧 可以用库函数也可以这么做 int a; char ch='5'; a=ch-'0';

#苏明素# 在VC++6.0中怎么将数字字符串转换为数字.例如:3687,+35688, - 00865转换为3687,35688, - 865 -
(19772121313): int change(char *pChar) { int nLen=0; int temp=0; nLen=strlen(pChar); switch(pChar[0]) { case '+': for(int i=1;i<nLen;i++) { temp=temp*10+(pChar[i]-0x30); } return temp; break; case '-': for(int i=1;i<nLen;i++) { temp=temp*10+(pChar[i]-0x30); } return -...

#苏明素# vc++如何将带小数点的字符串转成数字 -
(19772121313): 如果是java的话,是可以直接使用Intger.parseInt(字符串),这个方法是会报异常的,有可能字符串不是数字的格式,需要捕获

#苏明素# C++字符转换为整数 -
(19772121313): 针对字符0-9的,0-9的ascii码值为0x30,0x31,0x32 0x33 ...0x39,因此与0xf按位与后只保留个位上的书即0x0,0x1,...0x90x30 & 0xf = 00100111 & 00001111 = 0x00000111 = 0x07

#苏明素# VC++ MFC 用什么函数直接把编辑框里的字符转化为数值?用什么函数 ?急用的 各位大神!!! -
(19772121313): CString str = "12345"; int n = _ttoi(str);

#苏明素# vc++,中字符串怎么转化为数字? -
(19772121313): atoi、atof、strtol或者scanf都可以用,用法可以查一下MSDN

#苏明素# c加加中把字符串1转化成数字1的函数 -
(19772121313): 不用函数 直接用字符'1'减去字符'0',得到的结果再用类型转换为需要的就可以了 int('1'-'0')

#苏明素# C++如何将字符串挨个转换为数字 -
(19772121313): 获得字符串就能知道字符串的长度啊 然后根据长度建立数组 再逐个转化 一般情况下字符串都直接有转化为字符数组的方法 根本不需要你做什么 这样的话即便用char[]数组,那么应该怎么判断什么时候输入终止呢 你该不会想让用户输入一个字符你就转化一个吧 当然等用户输入完之后再进行转化啊

#苏明素# 如何在c或c++中将字符型数据转换为相应的数字型数据 -
(19772121313): #include <stdio.h> #include <stdlib.h> /* 将字符串“1635”转换为数字1635 */ int todo(const char * str) { int value=0,i=1,r=sizeof(str)-1; for(;r>=0;value+=i*(str[r]-'0'),--r,i*=10); return value; } int main(int argc, char *argv[]) { char * a="1635"; printf("%d\n",todo(a)); system("PAUSE"); return 0; }