string 到 int的转换

el/2024/5/23 2:19:39

1. c++中string到int的转换

1) 在C标准库里面,使用atoi:

#include <cstdlib>
#include <string>

std::string text = "152";
int number = std::atoi( text.c_str() );
if (errno == ERANGE) //可能是std::errno
{
 //number可能由于过大或过小而不能完全存储
}
else if (errno == ????)
//可能是EINVAL
{
 //不能转换成一个数字
}

2) 在C++标准库里面,使用stringstream:(stringstream 可以用于各种数据类型之间的转换)

#include <sstream>
#include <string>

std::string text = "152";
int number;
std::stringstream ss;


ss << text;//可以是其他数据类型
ss >> number; //string -> int
if (! ss.good())
{
//错误发生
}

ss << number;// int->string
string str = ss.str();
if (! ss.good())
{
 //错误发生
}

3) 在Boost库里面,使用lexical_cast:

#include <boost/lexical_cast.hpp>
#include <string>

try
{
 std::string text = "152";
 int number = boost::lexical_cast< int >( text );
}
catch( const boost::bad_lexical_cast & )
{
 //转换失败
}                      

2.string 转 CString
CString.format(”%s”, string.c_str());
用c_str()确实比data()要好;

3.char 转 CString
CString.format(”%s”, char*);

4.char 转 string
string s(char *);
只能初始化,在不是初始化的地方最好还是用assign().

5.string 转 char *
char *p = string.c_str();

6.CString 转 string
string s(CString.GetBuffer());
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

7.字符串的内容转换为字符数组和C—string
(1)  data(),返回没有”/0“的字符串数组
(2)  c_str(),返回有”/0“的字符串数组
(3)  copy()

8.CString与int、char*、char[100]之间的转换

(1) CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。而将数字转换为CString变量,可以使用CString的Format函数。如
CString s;
int i = 64;
s.Format(”%d”, i)
Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1()
{
   CString
   ss=”1212.12″;
   int temp=atoi(ss);
   CString aa;
   aa.Format(”%d”,temp);
   AfxMessageBox(”var is ” + aa);
}

(2) CString互转char*

///char * TO cstring
CString strtest;
char * charpoint;
charpoint=”give string a value”; //?
strtest=charpoint;

///cstring TO char *
charpoint=strtest.GetBuffer(strtest.GetLength());

(3) 标准C里没有string,char *==char []==string, 可以用CString.Format(”%s”,char *)这个方法来将char *转成CString。
    要把CString转成char *,用操作符(LPCSTR)CString就可以了。
    CString转换 char[100]
   char a[100];
   CString str(”aaaaaa”);
   strncpy(a,(LPCTSTR)str,sizeof(a));


http://www.ngui.cc/el/5281714.html

相关文章

[linker error] undefined reference to vtable for **

1.在开始——所有程序——Qt by Trolltech v4.3.0&#xff08;opensource&#xff09;找到Qt 4.3.0Command Prompt 2.在Command Prompt找到工程的路径 3.moc xxxx.h 4.右击Command Prompt,选全选&#xff0c;按CTRLC 5.将复制的内容粘贴到任何一个记事本里 6.将生成的代码粘贴到…

判断点是否在三角形内[转]

本文只是翻译和整理&#xff0c;原文在此http://www.blackpawn.com/texts/pointinpoly/default.html 概述 给定三角形ABC和一点P(x,y,z)&#xff0c;判断点P是否在ABC内。这是游戏设计中一个常见的问题。需要注意的是&#xff0c;这里假定点和三角形位于同一个平面内。 本文…

word中mathtype公式编辑

一 mathtype工具栏在word中消失 解决&#xff1a;如果安装了mathtype&#xff0c;则是没有加载或加载不成功。 1&#xff0c; 点击左上角的菜单&#xff0c;在右下角打开word选项&#xff0c;选中“加载项”&#xff0c;选中右边的“mathpage.wll”&#xff0c;在下面管理中选…

google 的广告系统

很多人使用 Google 的产品和服务很多年&#xff0c;一直不清楚 Google 靠什么挣钱&#xff0c;因为 Google 的服务全部是免费的。答案是搜索广告和与网页内容相关的广告。&#xff08;当然&#xff0c;Google 还有一些企业级产品&#xff0c;但是这些产品占不到营业额的百分之五…

排序比较函数

七种qsort排序方法 <本文中排序都是采用的从小到大排序> 一、对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、对char类型数组排序&#xff08;同int类型…

python dict访问

今天把一个150多万的key装进dict, 对数据量上百万的查询dict, 判断某个key是否在dict中&#xff0c;听某些人(网上)说用 key in dict.keys();速度会比 dict.has_key(key)要快很多。 结果我使用了下面的语句&#xff1a; if key in dict.keys(): value dict[key] do_somethi…

shell, python中比较两个日期的先后

在Shell中我们可以利用date命令比较两个日期的大小&#xff0c;方法是先把日期转换成时间戳格式&#xff0c;再进行比较。 date 的%s可以将日期转换成时间戳格式,看下面的例子&#xff1a; #!/bin/bash date1"2008-4-09 12:00:00" date2"2008-4-10 15:00:…

测试驱动开发(Test-Driven Development)

最近看了下测试驱动开发(Test-Driven Development), 第一部分用一个资金实例讲解测试驱动开发模式&#xff08;采用java编写示例&#xff09;&#xff0c;感觉挺不错的。 不过这种模式需要编写跟功能代码量相当的测试代码&#xff1b;一步一步的测试保证&#xff0c;在大系统中…

POI导出数据到EXCEL经典实现

转载出处&#xff1a;http://blog.csdn.net/lenolong/article/details/3957735 在web开发中&#xff0c;有一个经典的功能&#xff0c;就是数据的导入导出。特别是数据的导出&#xff0c;在生产管理或者财务系统中用的非常普遍&#xff0c;因为这些系统经常要做一些报表打印的工…

Myeclipse 10.1 修改外部Tomcat 发布路径

最近开始做Web项目&#xff0c;采用jsp等语言。找了一些相关开发工具&#xff0c;大家推荐较好的是 MyEclipse, 容器天然采用Tomcat. MyEclipse 目前最新版已经是10.5了. 我用的是10.1 版本(破解激活版)。自己配了个Apache 2.2 Tomcat 7.0 服务器。配这两个的原因是apache对…