string,char*,int 之间的转化

c++中经常遇到string,char*,int之间的相互转化,今天就来整理一下。

以下是转载并修改的内容:

以下是常用的几种类型互相之间的转换
string 转 int先转换为char*,再使用atoi()函数,具体如下
..............................
char* 转 int
#include <stdlib.h> 

int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);
long long atoq(const char *nptr);
...................................................................
int 转 string
可以使用stringstream类(需要包含<sstream>头文件)
int main()
{
   stringstream ss;
   int i = 100;
   string str;
   ss >> i;
   ss << str; //这时str中就是字符串"100".
   retturn 0;
}

.............................
char* 转 string
string s(char *);
你的只能初始化,在不是初始化的地方最好还是用assign().tip:也可以通过强制类型转换,如:char buf[20]={0};string s=(string)buf;但是并不建议采用这种方法
..................................................................
int 转 char *
在stdlib.h中有个函数itoa()
itoa的用法:
itoa(i,num,10);
i     需要转换成字符的数字
num   转换后保存字符的变量
10    转换数字的基数(进制)10就是说按照10进制转换数字。
还可以是2,8,16等等你喜欢的进制类型
原形:char *itoa(int value, char* string, int radix); 

实例:
#include "stdlib.h"
#include "stdio.h"
main()
{
    int i=1234;
    char s[5];
    itoa(i,s,10);
    printf("%s",s);
    getchar();
}
..........................................
string 转 char *
char *p = string.c_str();  

string aa("aaa");
char *c=aa.c_str();
string mngName;
char t[200];
memset(t,0,200);
strcpy(t,mngName.c_str());
.......................................... 
时间: 2024-10-11 08:55:20

string,char*,int 之间的转化的相关文章

CString,int,String,char,BSTR之间的转换

String 转 CString CString.format("%s", string.c_str()); char 转 CString CString.format("%s", char*); char 转 string string s(char *); string 转 char * char *p = string.c_str(); CString 转 string string s(CString.GetBuffer()); 1. String ->

String和数字之间的转化

主要是JDK的代码,还是比较的经典,值得一看,例如: package alg; /** * @author zha 字符串之间的转化 */ public class Alg3StringToint { /** * @param args */ public static void main(String[] args) { String intv = "1232192373290"; // int value = Integer.parseInt(intv); // System.ou

C++ 中 string, char*, int 类型的相互转换

1.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 == ????) //

Cocos2dx学习笔记(2) string char* int类型数据转换

1.char*转string char* cp = "char"; std::string sp = cp; 2.string转char* //1 std::string str = "string"; const char* cp = str.data(); //2 std::string str = "string"; const char* cp = str.c_str(); //3 std::string str = "hell

java 13-4 Integer和String、int之间的转换,进制转换

1.int类型和String类型的相互转换 A.int -- String 推荐用: public static String valueOf(int i) 返回 int 参数的字符串表示形式. B.String -- int 推荐用: public static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析 1 public class IntegerDemo { 2 public static void main(String[] args) {

二进制与十进制的转化,bool str int 之间的转化,str的常用操作,

1.基础数据类型总览(7种) int: 整型,用于进行+-*/运算 str: 存储少量的数据;可加str,可乘数字,可切片,可进行9种常用操作 bool: True False 判断真假 list: 存储大量的数据;可进行增删改查 tuple: 存储大量的数据,不可改变里面的元素 dict: 存储大量的关联型的数据,查询速度非常快;可进行增删改查 set: 自动去重;交并差集 2.int-二进制与十进制之间的相互转换 十进制转二进制 采用"除2取余,逆序排列"法.具体做法是:用2整除十

关于Java中byte,short,char,int 之间相互赋值的问题

首先明确这几种数据类的取值范围: byte:  -128~127 short: -2^15~2^15-1 char: 0~65536 int: -2^31~2^31-1 请看以下代码: byte b = 100; short s = b; //正确,因为byte的取值范围在short取值范围之内. char c = b; //错误,因为byte的取值范围不完全在char的取值范围内. c = s;  //错误,因为short的取值范围不完全在char的取值范围内. int x = b; //正确

string 与 int double 的转化

#include <iostream> #include <string> #include <sstream> using namespace std; int main() { //string -> int float double string str = "088.123"; cout << "string -> int float double" << endl; cout <

java,数字,字符,字符串之间的转化

首先,先看一道编程题目: A除以B (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入描述: 输入在1行中依次给出A和B,中间以1空格分隔. 输出描述: 在1行中依次输出Q和R,中间以1空格分隔. 输入例子: 123456789050987654321 7 输出例子