c++中数字与字符串之间的转换方法(推荐)
1、字符串数字之间的转换
(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 double d=atof(s.c_str());
2、数字转字符串:使用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()这个函数是平台相关的(不是标准里的),故在这里不推荐使用这个函数。
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进制
另外也可以使用atoi(),atol(),atof().
4、使用stringstream类
用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
以上就是小编为大家带来的c++中数字与字符串之间的转换方法(推荐)的全部内容了,希望对大家有所帮助,多多支持我们~
相关推荐
-
VC++ 字符串String MD5计算小工具 VS2008工程
基于字符串加密的MD5算法,VS2008 VC++,多字节编译工程.主要代码如下,实现了ANSI字符串加密与Unicode字符串加密. 运行效果如下: 核心代码: void CEncryptByMd5Dlg::OnButtonOk() { // TODO: Add your control notification handler code here UpdateData(true); unsigned int len=0; char *cTemp =NULL; if(m_bType==0) {
-
C/C++ 实现递归和栈逆序字符串的实例
C/C++ 实现递归和栈逆序字符串的实例 递归函数调用模型 逆序方法 void revers(char *buf){ char *p = buf; if (p == NULL) { return; } //递归结束条件 if (*p == '\0') { return; } //递归调用 revers(p + 1); //在字符串的结尾追加n个字符 strncat(buf_g, p, 1); } 调用 int main(int argc, const char * argv[]) { char
-
详解C++中十六进制字符串转数字(数值)
详解C++中十六进制字符串转数字(数值) 主要有两个方法,其实都是对现有函数的使用: 方法1: sscanf() 函数名: sscanf 功 能: 从字符串格式化输入 用 法: int sscanf(char *string, char *format[,argument,...]); 以上的 format 为 %x 就是将字符串格式化为 16 进制数 例子: #include <stdio.h> void main() { char* p = "0x1a"; i
-
C++中输出十六进制形式的字符串
前言 在进行 i18n 相关的开发时,经常遇到字符编码转换的错误.这时如果能把相关字符串用十六进制的形式打印出来,例如,"abc" 输出成 "\\x61\\x62\\x63" 这对于 i18n 的除错来说是很有帮助的.Python 里面,只需要使用 repr() 函数就行了.可在 C++ 中如何做到这点呢? 下面是用 ostream 的格式化功能的一个简单的实现: std::string get_raw_string(std::string const& s
-
详解NSString 与C++ string字符串的互转
NSString 与C++ string字符串的互转实例详解 1. string 转换为 NSString std::string str("hello"); NSString *str=[NSString stringWithString:str.c_str()]; NSString *istr=[NSString stringWithString:@"zsh"]; str=[istr cStringUsingEncoding: NSUTF8StringEnco
-
C++中带空格字符串的输入问题解决
前言 字符串一直是一个重点加难点,很多笔试面试都会涉及,带空格的字符串更是十分常见,现在对字符串的输入问题进行一下总结. C++用cin输入的时候会忽略空格以后的字符,比如 char a[100]; cin>>a; C++用cin输入的时候会忽略空格以后的字符,输入"hello world"输出的是"hello": 如果用循环输入 for(int i=0;i<100;i++) { cin>>a[i]; } 这样输入100个数吗?或者定义
-
C++ string 字符串查找匹配实例代码
在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法.而对于C++的string,我们往往会用到find(). C++:#inlcude<string> C: #include<string.h> find():在一个字符串中查找一个指定的单个字符或字符数组.如果找到,就返回首次匹配的开始位置:如果没有查找到匹配的内容,就返回string::npos. find_first_of():在一个目标串
-
C++ 中字符串操作--宽窄字符转换的实例详解
C++ 中字符串操作--宽窄字符转换的实例详解 MultiByteToWideChar int MultiByteToWideChar( _In_ UINT CodePage, _In_ DWORD dwFlags, _In_ LPCSTR lpMultiByteStr, _In_ int cbMultiByte, _Out_opt_ LPWSTR lpWideCharStr, _In_ int cchWideChar ); 参数描述: CodePage:常用CP_ACP.CP_UTF8 dwF
-
C++/C 回文字符串的实例详解
C++/C回文字符串的实例详解 判断输入的字符串是不是回文字符串,正反读一样. .C版 #include<stdio.h> int main() { char he[100]; char a; int i=0,flag=1; while((a=getchar())!='\n') { he[i]=a; i++; } int n=i; for(i=0;i<n/2;i++) { printf("%c\t%c\n",he[i],he[n-1-i]); if(he[i]!=he
-
c++中数字与字符串之间的转换方法(推荐)
1.字符串数字之间的转换 (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(&q
-
浅谈JS 数字和字符串之间相互转化的纠纷
字符串转数字 1 parseInt() 函数 parseInt() 函数从string的开始解析,返回一个整数 parseInt('123') : 返回 123: parseInt('1234xxx') : 返回 1234: parseInt('123.456') : 返回 123: parseInt('1 2 3') : 返回 1:字符串的情况,自会返回第一个数 parseInt('bb cc 12') : 返回 NaN:字符串第一个不是数,返回nan parseInt('123' 321)
-
Python中bytes字节串和string字符串之间的转换方法
目录 背景 代码 代码说明: 验证一下 附:bytes和string区别 总结 背景 在工作中经常会碰到字节串(bytes)与字符串(string)之间转换的问题,做个记录. bytes只负责用字节序列的形式(二进制形式)存储数据,不关心数据本身是图片.文字.视频等等.如果需要使用并且展示的话,按照对应的解析规则处理,就可以拿到对应类型的数据.如常见的字符串类型,只需要使用对应的字符编码格式,就可以拿到字符串的内容. 下面会用一些代码来表示bytes的构造,以及和字符串之间的转换. 代码 先看一
-
浅谈Go中数字转换字符串的正确姿势
在许多语言中,你可以轻松地将任何数据类型转换为字符串,只需将其与字符串连接,或者使用类型转换表达式即可.但是,如果你在Go中尝试执行似乎很明显的操作(例如将int转换为字符串),你不太可能获得预期的效果. 比如下面: string(120) 你期望返回的结果是什么?如果你有使用其他编程语言的经验,那么大多数人的猜测是" 123".相反,在Go中上面的类型转换会得到" E"之类的值,那根本不是我们想要的.因为string()会直接把字节或者数字转换为字符的UTF-8表
-
C语言中字符串与各数值类型之间的转换方法
C语言的算法设计中,经常会需要用到字符串,而由于c语言中字符串并不是一个默认类型,其标准库stdlib设计了很多函数方便我们处理字符串与其他数值类型之间的转换. 首先放上一段展示各函数使用的代码,大家也可以copy到自己的机器上运行观察 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int num=183; char str[3]; //itoa函数将整型转换为字符串数值类型 it
-
python中ASCII码字符与int之间的转换方法
ASCII码转换为int:ord('A') 65 int转为ASCII码:chr(65) 'A' 题目内容: 实现一个凯撒密码的变种算法,对输入字符串进行加解密处理 把字母a-z分别循环对应为相距13个位置的字母n-m,即 原文字母:a b c d e f g h i j k l m n o p q r s t u v w x y z 对应字母:n o p q r s t u v w x y z a b c d e f g h i j k l m 大写字母对应方式与小写字母类似,其他符号(含标点
-
python中数字列表转化为数字字符串的实例代码
目录 1. python中数字组成的列表转化为字符串或者一串数字 2.python中把数字组成的列表转化为字符串列表 3.Python中把字符组成的列表转化为数字 4.Python中把一串数字字符转化为单个字符列表或者数字列表 5. Python中把字符串列表转化为数字列表 参考文章: 总结 1. python中数字组成的列表转化为字符串或者一串数字 f=[1,2,3,4] num=len(f) m='' #建立空字符串 for i in range(num): x=str(f[i]) m=m+
-
Java中关于控制台读取数字或字符串的方法
Java中,int a = System.in.read();此句读取的是一个字符,然后返回的是对应字符的ASCII, 例如,控制台输入123,只读取一个字符1,对应的ASCII为49,则输出49,输入abc则读取a,对应的ASCII是97,则输出97: Scanner sc = new Scanner(System.in) int n = sc.nextInt();从控制台读取一个数. String c = sc.next();//从控制台读取字符串 以上就是小编为大家带来的Java中关于控制
-
C#基于正则表达式删除字符串中数字或非数字的方法
本文实例讲述了C#基于正则表达式删除字符串中数字或非数字的方法.分享给大家供大家参考,具体如下: /// 去掉字符串中的数字 public static string RemoveNumber(string key) { return Regex.Replace(key, @"\d", ""); } //去掉字符串中的非数字 public static string RemoveNotNumber(string key) { return Regex.Replace
-
C语言中一些将字符串转换为数字的函数小结
C语言atoi()函数:将字符串转换成int(整数) 头文件: #include <stdlib.h> atoi() 函数用来将字符串转换成整数(int),其原型为: int atoi (const char * str); [函数说明]atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回. [返回值]返回转换后的
随机推荐
- JSP的request对象实例详解
- Delphi之Pascal语言中的关键字及保留字汇总
- ASP的URLDecode函数URLEncode解码函数
- Android开发笔记 改变字体颜色的三种方法
- 详解AngularJS用Interceptors来统一处理HTTP请求和响应
- java读取http请求中的body实例代码
- java 嵌套类的详解及实例代码
- PHP mysql与mysqli事务使用说明 分享
- Python字符编码与函数的基本使用方法
- JavaScript DOM基础
- php的declare控制符和ticks教程(附示例)
- JQuery显示、隐藏div的几种方法简明总结
- Java获取任意http网页源代码的方法
- Bootstrap Table 搜索框和查询功能
- Java随机生成姓名,手机号,住址代码示例
- vue.js或js实现中文A-Z排序的方法
- springMVC返回复杂的json格式数据方法
- python在每个字符后添加空格的实例
- 基于Django URL传参 FORM表单传数据 get post的用法实例
- vue-cli2 构建速度优化的实现方法