C/C++字符串和其他类型转换
C语言中string char int类型转换
转载自:http://blog.sina.com.cn/s/blog_63041bb801016b4x.html ,char型数字转换为int型
char a[] = "";
printf("%d\n", a[]-'');//输出结果为3
,int转化为char
*********************************** linux c ***********************************
()字符串转换成数字,用atoi,atol,atof,分别对应的是整型,long型,double型。以整型为例:
char str[]="";
int a=atoi(str); ()数字换成字符串,用sprintf.以整型为例。
char str[];
int a=;
sprintf(str,"%d",a);
**********************************************************************
string 是c++标准库里面其中一个,封装了对字符串的操作
把string转换为char* 有3中方法:
.data
如:
string str="abc";
char *p=str.data();
.c_str
如:string str="gdfd"; char *p=str.c_str();
. copy
比如
string str="hello";
char p[];
str.copy(p,
str.copy(p,
str.copy(p,,); //这里5,代表复制几个字符,0代表复制的位置
*(p+)='\0'; //要手动加上结束符
cout < <p;
示例程序:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string line;
getline(cin,line);
char str[];
int size=line.size();
line.copy(str,line.size(),);
//char str[20]="liuyanbo";
char upper[];
for(int i=;i<size;++i)
{
//cout<<static_cast<char>(toupper(str[i]));
upper[i]=static_cast<char>(toupper(str[i]));
}
upper[i]='\0';
cout<<upper<<endl;
return ;
} C语言 单引号和双引号的区别
、含义不同。
用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。而一般我们的编译器采用的都是ASCII字符集。因此's'的含义其实和十进制数115的含义是一致的。
而用双引号引起的字符串,代表的是一个指向无名数组起始字符的指针。
、大小不同。
用单引号引起的一个字符大小就是一个字节。
而用双引号引起的字符串大小是字符的总大小+,因为用双引号引起的字符串会在字符串末尾添加一个二进制为0的字符'\0'。 数组的输入:
int h[] = {,,};
for (int m=; m<; m++)
{
scanf("%d", &h[m]);
}
printf("%d\n", h[]); itoa
功 能:把一整数转换为字符串
用 法:char *itoa(int value, char *string, int radix);
详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写.
参数:
value: 待转化的整数。
radix: 是基数的意思,即先将value转化为radix进制的数,范围介于2-,比如10表示10进制,16表示16进制。
* string: 保存转换后得到的字符串。
返回值:
char * : 指向生成的字符串, 同*string。
备注:该函数的头文件是"stdlib.h"
#include
#include
int main()
{
int number = ;
char string[];
itoa(number, string, );
printf("integer = %d string = %s\n", number, string);
return ;
}
atoi
C语言库函数名: atoi
功 能: 把字符串转换成整型数
函数说明: atoi()会扫描参数nptr字符串,检测到第一个数字或正负符号时开始做类型转换,之后检测到非数字或结束符 \ 时停止转换,返回整型数。
原型: int atoi(const char *nptr);
需要用到的头文件: #include
程序例:
)
#include
#include
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("string = %s integer = %d\n", str, n);
return ;
}
执行结果
string = 12345.67 integer =
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()); ,string -> CString
CString.format("%s", string.c_str());
用c_str()确实比data()要好.
,char -> string
string s(char *);
你的只能初始化,在不是初始化的地方最好还是用assign().
,CString -> string
string s(CString.GetBuffer());
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间. 《C++标准函数库》中说的
有三个函数可以将字符串的内容转换为字符数组和C—string
.data(),返回没有”\“的字符串数组
,c_str(),返回有”\“的字符串数组
,copy() --------------------------------------------------------------- CString与int、char*、char[]之间的转换- - CString与int、char*、char[]之间的转换- - CString互转int 将字符转换为整数,可以使用atoi、_atoi64或atol。
而将数字转换为CString变量,可以使用CString的Format函数。如
CString s;
int i = ;
s.Format("%d", i)
Format函数的功能很强,值得你研究一下。 void CStrDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString
ss="1212.12";
int temp=atoi(ss);
CString aa;
aa.Format("%d",temp);
AfxMessageBox("var is " + aa);
} sart.Format("%s",buf); CString互转char* ///char * TO cstring
CString strtest;
char * charpoint;
charpoint="give string a value";
strtest=charpoint; ///cstring TO char *
charpoint=strtest.GetBuffer(strtest.GetLength()); 标准C里没有string,char *==char []==string 可以用CString.Format("%s",char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。 CString转换 char[] char a[];
CString str("aaaaaa");
strncpy(a,(LPCTSTR)str,sizeof(a));
CString类型的转换成int
将字符转换为整数,可以使用atoi、_atoi64或atol。 //CString aaa = "16" ;
//int int_chage = atoi((lpcstr)aaa) ; 而将数字转换为CString变量,可以使用CString的Format函数。如
CString s;
int i = ;
s.Format("%d", i)
Format函数的功能很强,值得你研究一下。
如果是使用char数组,也可以使用sprintf函数。 //CString ss="1212.12";
//int temp=atoi(ss);
//CString aa;
//aa.Format("%d",temp); 数字->字符串除了用CString::Format,还有FormatV、sprintf和不需要借助于Afx的itoa
#include int atoi(const char *nptr);
long atol(const char *nptr);
long long atoll(const char *nptr);
long long atoq(const char *nptr);
string aa("aaa");
char *c=aa.c_str(); cannot convert from 'const char *' to 'char *'
const char *c=aa.c_str();
string.c_str()只能转换成const char *,
要转成char *这样写: string mngName;
char t[]; memset(t,,); strcpy(t,mngName.c_str());
C/C++字符串和其他类型转换的更多相关文章
- python学习番外篇——字符串的数据类型转换及内置方法
目录 字符串的数据类型转换及内置方法 类型转换 内置方法 优先掌握的方法 需要掌握的方法 strip, lstrip, rstrip lower, upper, islower, isupper 插入 ...
- Java 日期字符串与日期类型转换
1.SimpleDateFormat.format 把日期类型转化到指定格式字符串 public static String convToString(Calendar cld,String temp ...
- javaBean中 字符串 转 date 类型转换
1-----创建javabean 代码如下 package BeanUtils; import java.util.Date; public class Admin { private String ...
- oracle的concat、convert、listagg函数(字符串拼接和类型转换)
ORACLE几种常用的方法(2) 1.concat常见的用法 : 格式:concat(String1,String2) 说明:concat函数用于将两个字符串连接起来,形成一个单一的字符串 实例: s ...
- day03 for循环、字符串方法、类型转换
01 上周内容回顾 while 条件: 循环体 例: while True: print(111) print(222) print(333) 结束循环的两种方式: 1,改变条件. 2,break. ...
- Struts2入门(三)——数据类型转换
一.前言 笔者一直觉得,学习一个知识点,你首先要明白,这东西是什么?有什么用?这样你才能了解.好了,不说废话. 1.1.类型转换为何存在?什么是类型转换? 在MVC框架中,都是属于表示层解决方案,都需 ...
- Objective-C精选字符串处理方法
无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析和操作我们可以用正则表达式来达到我们的目的.简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解 ...
- Foundation框架—字符串(NSString)
一 NSString不可变字符串 1.字符串的创建 //创建字符串常量 NSString *string1 = @"hello"; string1 = @"hello w ...
- Java OOP中的字符串篇
字符串的三大特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String.St ...
随机推荐
- php import require include use vendor
一.use 调用命名空间 用法. use app\common\controller\Index as commonIndex 或 use app\common\controller\Index ...
- super语句不必须放在方法第一行。
class A(object): pass class B(A): def __init__(self): self.__a = "B#a" super(B, self).__in ...
- windows 使用 git 客户端
git客户端下载地址:https://www.git-scm.com/ tortoisegit下载地址:https://tortoisegit.org/ 双击下载的安装包,默认安装直到完成. 打开gi ...
- JavaWeb(九):上传和下载
表单 进行文件上传时, 表单需要做的准备: 1). 请求方式为 POST: <form action="uploadServlet" method="post&qu ...
- 数据库(一):事务的特性与事务(在同一个 JVM 中)的传递
参考文章 https://blog.csdn.net/shuaihj/article/details/14163713 https://blog.csdn.net/shfqbluestone/arti ...
- LeetCode--057--插入区间(java)
给出一个无重叠的 ,按照区间起始端点排序的区间列表. 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间). 示例 1: 输入: intervals = [ ...
- dict常用操作
dict是python中的常用数据结构,应该尽量掌握其使用方法 """ 初始化一个dict的四种方式: 1. dict() -> 创建一个空的dict 2. dic ...
- 批量搞机(一):ansible简介、ansible安装
一.ansible简介 Ansible是2013年推出的一款IT自动化和DevOps软件,目前由Redhat已签署Ansible收购协议.其是基于Python研发,糅合了很多老运维工具的优点实现了批量 ...
- Django 基础笔记补充
1.目录文件 django-admin.py startproject mydj cd mydj python manage.py startapp myapp 后生成目录: mydj/ ├── ...
- 002-JS-SDK开发使用,网页获取授权,扫一扫调用
一.概述 在申请响应的公众号之后,实名认证或者企业认证之后,可以进行对应开发 二.开发步骤 2.1.开发前提[服务号]-域名设置 登录后台之后→左侧设置→公众号设置→功能设置,设置好“JS接口安全域名 ...