vc++ 6.0 与VS 2010 下字符串与数字互换的不同写法

72.如何在VC++6.0中实现反转字符串功能 简单来说,字符串反转就是将一个字符串中的字符顺序颠倒。例如,字符串"Hello"反转后的结果是"olleH"。在实际应用中,字符串反转常常用于处理字符串中的数据格式、字符串搜索、加密解密等场景。 阅读详情
 vc++ 6.0 与VS 2010 下字符串与数字互换的不同写法
在这里,我们在一个对话框的窗口中做两个整数相加的运算。
我们建立了,m_plus ,m_bplus,m_result 三个控件分别存放加数,被加数,结果的值。
有一个“确定”的按钮 OnBnClickedOk()的函数用来统计两数相加的结果。
用到转换宏为:atoi 字符串转整数,itoa 整数转字符串 (注意两个程序对应的注释程序代码的区别)
void CouDlg::OnBnClickedOk()
{

CString CSPlus,CSBPlus;//定义字符串
m_plus.GetWindowText(CSPlus);
m_bplus.GetWindowText(CSBPlus);

int nPlus=atoi(CSPlus.GetBuffer(0));//字符串转整数
CSPlus.ReleaseBuffer();
int nBPlus=atoi(CSBPlus.GetBuffer(0));
CSBPlus.ReleaseBuffer();

int nResult=nPlus+nBPlus;
char chResult[128]={0};//定义字符数组
itoa(nResult,chResult,10);//整数转字符串
m_result.SetWindowText(chResult);
// TODO: 在此添加控件通知处理程序代码
//CDialogEx::OnOK();
}
以上代码在vc++ 6.0能编译通过,但在vs 2010编译通不过,会报如下错误:
error C2664: “itoa”: 不能将参数 2 从“wchar_t [128]”转换为“char *”
error C2664: “CWnd::SetWindowTextA”: 不能将参数 1 从“wchar_t [128]”转换为“LPCTSTR”

究其原因是,1.vs 2010 默认字符集是使用 Unicode 字符集,而vc++ 6.0 没有Unicode 字符集
2.vc++ 6.0 char类型采用的是单字节存储形式,而vs 2010为了兼容发展,采用了2字节存储形式那么,在vs 2010中字符串与数字互换的写法是怎么样的呢,其实也简单,我们了解VS2010的char 的存储机制后,我们可用宽字节的宏来转换,即用wchar_t 代替 char 字义字符串 , 用_wtoi 字符串转整数,用_itow 整数转字符串就可以了,因此上述程序改为:
void CouDlg::OnBnClickedOk()
{

CString CSPlus,CSBPlus;
m_plus.GetWindowText(CSPlus);
m_bplus.GetWindowText(CSBPlus);

int nPlus=_wtoi(CSPlus.GetBuffer(0));//字符串转整数 以宽字节形式
CSPlus.ReleaseBuffer();
int nBPlus=_wtoi(CSBPlus.GetBuffer(0));
CSBPlus.ReleaseBuffer();

int nResult=nPlus+nBPlus;
wchar_t chResult[128]={0};};//定义字符数组
_itow(nResult,chResult,10);、、//整数转字符串 ,以宽字节形式
m_result.SetWindowText(chResult);
// TODO: 在此添加控件通知处理程序代码
//CDialogEx::OnOK();
}
vs 2010 编译通过!


阻容降压 vs 开关电源:5V小功率供电方案成本安全深度对比 本文深度对比了阻容降压电路开关电源在5V小功率供电方案中的核心差异。重点剖析了二者在成本、体积、效率、温升及安全隔离等方面的优劣,并结合智能温控器、LED驱动等典型应用场景,为硬件工程师提供了清晰的选型决策框架,帮助在成本安全之间做出最佳权衡。 阅读详情

相关推荐

RH8500搭建Autosar开发环境【2】- Davinci Configurator配置工程导入DBCCDD文件

Davinci Configurator配置工程导入DBCCDD文件,开始Autosar开发

weixin_42412049的博客 8082

字符串转换整数---2022/01/08

题目描述 字符串转换整数 题解 一些考虑: 1、如果字符数组含有未定位的位置,或者含有不是数字的字符,那么字符数组转换成字符串是没有问题的, 但是字符串转换成数字就会出现问题。所以我这里直接考虑将单个数字转化成数字??还有另外一种考虑 就是直接将数字字符加到字符串里面,保证字符串的纯洁性。 2、函数的数值是否在合理范围之内,不是字符串一输入就开始判断的,因为此时的字符串不够规范,不能 转换成具体的数值。 3、对题目的理解不到位,如果检测到的第一个字符不是数字字符,也应该直接返回0了,包括只有一个非法字符的字

qq_44118744的博客 798

字符串数字转换 C++ vs2008

字符串数字转换 C++ vs2008实现

[VS][VC]字符串数字的函数总结

举例: 将字符串转换为双精度浮点数函数为 double _strtod_l(const char *nptr, char **endptr, _locale_t locale); 其中,nptr表示要转换的字符串;endptr表示终止转换的字符;locale表示使用的

独在南国,听风吹雪 2007

字符串数字转换

1.字符串数字 1)使用stringstream 添加头文件 #include<sstream> stringstream s; string str; int a; ss<<str; ss>>a; [1] stringstream可以多个字符串拼接,所以多次转换需要使用clear清空。 2)使用atoi()stoi() 这两个都是C++的字符处理函数,把数字字符串转换成int输出,而且头文件都是#include<cstring> .

AvengerS1111的博客 8692

vc字符串数字

vc字符串数字

如鹿渴慕泉水的专栏 406

字符串数字

下列函数可以将字符串转换为数字: 函数名 作 用 atof()字符串转换为双精度浮点型值 atoi()字符串转换为整型值 atol()字符串转换为长整型值 strtod()字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字 strtol()字符串转换为长整值,并报告不能被转换的所有剩余数字 strtoul()字符串转换为无符号长整型值,并报告不能被转换的所有剩余数

weixin_43947512的博客 274

vc++ 6.0 VS 2010字符串数字互换不同写法 unicode

vc++ 6.0 VS 2010字符串数字互换不同写法 在这里,我们在一个对话框的窗口中做两个整数相加的运算。 我们建立了,m_plus ,m_bplus,m_result 三个控件分别存放加数,被加数,结果的值。 有一个“确定”的按钮 OnBnClickedOk()的函数用来统计两数相加的结果。 用到转换宏为:atoi 字符串转整数,itoa 整数转字符串 (注意两个程序对应的注释程序代码的区别) void CouDlg::OnBnClickedOk() { CString CSPlus,CSB

abc 499

数字字符串互转

例:itoa(-1234) 返回 “-1234”,但考虑到 c 语言的字符串并不像 Java 那么好用,可以拼接,我确定不了字符数组的长度,越界了也不会报错,所以具体长度用调用者决定。得到每个字符减去 ‘0’,得到实际数值 d,例 ‘8’ - ‘0’ = 8。sign 存储符号,0 代表正,1 代表负,需要添加 ‘-’。例:toInteger(“-1234”) 返回 -1234。定义一个变量 sign 存储符号位,0 代表正,1 代表负。十位:i / 10 % 10。例:获取 1234 的各位值。

什么美哟有 945

数字字符串:倒序和相互转换

//源代码已在VS2010编译通过 #include #include #include #include using namespace std; int NumReverse(int n) { int t = 0; while(n > 0) { t = 10 * t + n % 10; n /= 10; } return t; } string StrRevers

UUUUTaossienUUUU的专栏 2318

基于visual Studio2013解决面试题之0507字符串转整数

题目解决代码及点评/* 输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345" , 则输出整数 345。 */ #include <iostream> using namespace std; bool gIsVaild = true; // 转化函数 int strToi(const char *pszBuf) { if (pszB...

weixin_30832983的博客 208

GetBuffer(0)

         如果你需要修改   CString   中的内容,它有一个特殊的方法可以使用,那就是  GetBuffer,它的作用是返回一个可写的缓冲指针。 如果你打算修改字符或者截短字符串,你完全可以这样做:         CString   s(_T("File.ext"));     LPTSTR   p   =   s.GetBuffer();     LPTSTR   dot  

移动开发专栏 4425

8、字符串转换整数(atoi)-cangjie

2、遍历,如果 onlyNum 为 true,继续处理数字:如果当前字符是数字,将其转为相应的整数并累加到 ans,并每次乘以 10 来构建完整数字,返回前检查是否超出 Int32 的范围。1、创建字符数组,定义结果变量 ans 为 0,符号变量 符号 初始化为 1(表示正数),以及一个标志 onlyNum 用于指示是否已经读取到数字。1、string不能slice,必须转arr。

qq_35085273的博客 571

C# 十六进制字符串数值类型之间转换

<br />十六进制字符串数值类型之间转换(C# 编程指南)<br />以下示例演示如何执行下列任务:<br />获取字符串中每个字符的十六进制值。<br />获取十六进制字符串中的每个值对应的字符。<br />将十六进制 string 转换为整型。<br />将十六进制 string 转换为浮点型。<br />将字节数组转换为十六进制 string。示例<br />此示例输出 string 中的每个字符的十六进制值。首先,它将 string 分析为字符数组,然后对每个字符调用 ToInt32(Char

LYJ个人博客,记录技术、八卦、生活,分享各种心得,期待与朋友们一同进步 2752

VS2010运用Format将字符数组转化为CString 格式,并用AfxMessageBox()过程中出现转换乱码问题的解决方案

通常我们使用强制转换可以把单个字符在unicodeASCII字符之间互相转换   但是由于VS2008 和 VS2005 工程有差异,所以可能会导致转码错误。   例如:   Cpp代码   char *ch="hello";    CString msg;   msg.format(_T("%s",LPCTSTR(ch));    AfxMessageBo

qingfengjuechen的专栏 2288

VS2010学习笔记】【类型转换】整形转换为CString类型

数字转换为CString变量,可以使用CString的Format函数。

无敌三脚猫的专栏 1833

字符串的日期转换成全数字的日期表达方式

例如:日期:2017年5月1日 9:3:1 ; 将它转换成20170501090301的时间格式;面试题大概是这个意思,原文意思很模糊,经面试官解释为如上意思。主要卡壳地方为日小时之间有个空格如何去掉,想使用将字符串转换成数组除去数组中的空元素,但是转换成数组后除去数组中空元素有一定难度,在网上找的判断方法都是如果数组中的空元素==undefined , 则为空元素。这个方法一般情况下是好使的

weixin_39552802的博客 4333

c++ 整数转化为string

需要把整数转化为string类型,一共找到三种方法 int k; char arr[10]; string s; 1. 因为我是用的vs2010,这种方法不好用 #include&amp;amp;lt;string&amp;amp;gt; s = std::to_string(k); 2. #include&amp;amp;lt;stdlib.h&amp;amp;gt; itoa(k,arr,10); s = arr; 3. #include&amp;amp

he626shidizai的博客 3597

C++中将数字转换成string的方法汇总

是最常用和最推荐的方法,因为它简单、安全,且不涉及手动分配缓冲区。然而,根据具体的需求,选择适当的方法是很重要的。如果需要更高级的格式化或其他操作,可能需要使用其他方法。函数,可以将整数、浮点数以及其他数字类型转换为字符串,如前面的示例所示。类来将数字转换为字符串,这样可以更精细地控制格式。可以将数字格式化为字符串。使用C++标准库中的。

CHNIM的博客 9893

VS2010 C/C++实用操作

本文的主要内容来自各个博客和论坛,在此处只是仅仅做引用备份。1. 寻找文件的父目录 在程序中经常需要打开一个文件,同时获取其所在的目录。参考网络上的论坛(具体链接已经忘记),代码如下: size_t pos = file_path.find_last_of('\\'); string working_dir(file_path.substr(0,pos + 1)); cou

Yan 2841

保险大数据集合-学习使用(2007-2022年).zip

保险大数据集合-学习使用(2007-2022年).zip

上一篇: c++动态数组构造及应用
下一篇: c++调用系统日期与时间
adengou
博客等级 码龄21年 6粉丝 23原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值