c语言字符串与整数的转换
2018-02-12 21:45
176 查看
转自:http://blog.csdn.net/jiede1/article/details/708093521、C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。需要注意的是,这个几个函数是C语言提供的扩展功能,并不是标准的函数,必须引入头文件# include <stdlib. h>;若需要移植性,请用sscanf函数。头文件:#include <stdlib.h>atoi():int atoi(const char *str );
功能:把字符串转换成整型数。
str:要进行转换的字符串
返回值:每个函数返回 int 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则atoi的返回值为 0。
说明:当第一个字符不能识别为数字时,函数将停止读入输入字符串。
例如:int num=atoi(“12345”);//字符串”12345”转换为数字12345,并存入num变量中
2、sscanf函数。
sscanf函数是C语言中从一个字符串中读进与指定格式相符的数据的函数。sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。使用sscanf函数可以实现字符串到任意数据类型的转换。头文件:#include<stdio.h>
例如:char s[]=”12345”;
int n;
sscanf(s,”%d”,&n);//把字符串s转换为整形数据并存入变量n中
3、字符串数字之间的转换
4、数字转字符串:使用sprintf()函数
char itoa(int value, char string, int radix);
同样也可以将数字转字符串,不过itoa()这个函数是平台相关的(不是标准里的),故在这里不推荐使用这个函数。
4、使用stringstream类,必须使用#include<sstream>
用ostringstream对象写一个字符串,类似于sprintf()
用istringstream对象读一个字符串,类似于sscanf() istringstream stream1; string string1 = "25"; stream1.str(string1); int i; stream1 >> i; cout << i << endl; // displays 25
功能:把字符串转换成整型数。
str:要进行转换的字符串
返回值:每个函数返回 int 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则atoi的返回值为 0。
说明:当第一个字符不能识别为数字时,函数将停止读入输入字符串。
例如:int num=atoi(“12345”);//字符串”12345”转换为数字12345,并存入num变量中
2、sscanf函数。
sscanf函数是C语言中从一个字符串中读进与指定格式相符的数据的函数。sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。使用sscanf函数可以实现字符串到任意数据类型的转换。头文件:#include<stdio.h>
例如:char s[]=”12345”;
int n;
sscanf(s,”%d”,&n);//把字符串s转换为整形数据并存入变量n中
3、字符串数字之间的转换
(1)string --> char * string str("OK"); char * p = str.c_str();
(2)char * -->string char *p = "OK"; string str(p); (3)char * -->CString char *p ="OK"; CString m_Str(p); //或者 CString m_Str; m_Str.Format("%s",p); (4)CString --> char * CString str("OK"); char * p = str.GetBuffer(0); ... str.ReleaseBuffer();
(5)string --> CString CString.Format("%s", string.c_str()); (6)CString --> string string s(CString.GetBuffer(0)); GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间,CString对象不能动态增长了。
(7)double/float->CString double data; CString.Format("%.2f",data); //保留2位小数 (8)CString->double CString s="123.12"; double d=atof(s); (9)string->double //c_str函数的返回值是const char*的,atof不能直接赋值给char*,所以就需要我们进行相应的操作转化,下面就是这一转化过程 double d=atof(s.c_str());1
4、数字转字符串:使用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进制
char itoa(int value, char string, int radix);
同样也可以将数字转字符串,不过itoa()这个函数是平台相关的(不是标准里的),故在这里不推荐使用这个函数。
4、使用stringstream类,必须使用#include<sstream>
用ostringstream对象写一个字符串,类似于sprintf()
ostringstream s1; int i = 22; s1 << "Hello " << i << endl; string s2 = s1.str(); cout << s2;
用istringstream对象读一个字符串,类似于sscanf() istringstream stream1; string string1 = "25"; stream1.str(string1); int i; stream1 >> i; cout << i << endl; // displays 25
相关文章推荐
- Linux 中C语言 字符串与整数之间的转换
- C语言整数与字符串相互转换库函数
- c语言中的转换字符串为整数的函数
- C语言实现 字符串转换为整数输出 int ascii_to_integer(char *str);
- 【c语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- C语言通过函数实现 itoa()的功能 将整数转换成字符串 并实现进制转换
- c语言中的字符串转换成整数
- C语言实现把字符串转换成整数
- 【剑指offer】C语言:实现函数可以将一个字符串转换为对应的整数,如+1234输出1234
- C语言atoi()函数:将字符串转换成int(整数)
- C语言中字符串与整数的相互转换
- C语言中将字符串转换为整数
- 编写函数,其功能是:将一个数字字符串转换为一个整数(不得调用C语言中提供的将字符串转换成整数的函数。)要求在主函数中输入该字符串并输出转换后的整数的值。
- c语言字符串与整数之间的转换
- 【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- C语言atoi()函数:将字符串转换成int(整数) 会自动把里面的非数字抛出 转换是数字的
- c语言:模拟实现库函数的atoi函数,将字符串转换成整数
- 【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)。
- 常见C语言面试题之一:字符串代替、字符串转换整数
- c语言字符串与整数之间的转换