C语言中string char int类型转换
C语言中string char int类型转换 (-- ::)
转载
▼
标签: 操作符 int char c语言 类型转换 分类: C/Cpp ,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());
http://blog.sina.com.cn/s/blog_63041bb801016b4x.html
C语言中string char int类型转换的更多相关文章
- C++ 中 string, char*, int 类型的相互转换
一.int 1.int 转换成 string 1) to_string函数 —— c++11标准增加了全局函数std::to_string: string to_string (int val); s ...
- string,char*,int 之间的转化
c++中经常遇到string,char*,int之间的相互转化,今天就来整理一下. 以下是转载并修改的内容: 以下是常用的几种类型互相之间的转换 string 转 int先转换为char*,再使用at ...
- C语言中strcpy(char *strDest, const char *strScr)字符串复制库函数的理解与分析
1.原版的strcpy()函数原型 char * strcpy( char *strDest, const char *strSrc ) { assert( (strDest != NULL) &am ...
- (C/C++) string / *char / int 基本轉換
網路上有許 string / *char / integer 基本轉換方式 string 與 *char 互相轉換的方法 /* string to *char */ string ssbuf1 = & ...
- 在javascript里 string 和 int 类型转换
string 转换为int 类型 (1)tostring()方法 var x=10 a = x.toString() //输出为string类型 alert(typeof(a)); ...
- VB命令行参数分隔, 类似C语言中的main(int argc, char* argv[])
VB6.0为了提供命令行参数的支持,提供了Command()接口,于是通过 Command() 函数可以得到所有传入的参数,但是很不友好的是,VB的所有参数都被合在了一起,成为了一个字符串,当有多个参 ...
- MFC string char cstring 类型转换
在Unicode环境下用以下转换: CString z_strCurtTime = _T(""); // 获取当前时间 CTime z_tCurTime = CTime::GetC ...
- c语言中的register int
register int a=1; 明确声明必须要把变量存放在寄存器中,直到变量消失. 一般是默认register,大多数的情况下是不用写register
- C++ 中int,char,string,CString类型转换
1. c++中string到int的转换 1) 在C标准库里面,使用atoi: #include <cstdlib> #include <string> std::stri ...
随机推荐
- python常用函数 A
1.any() iterable元素是不是全为0 2.all() iterable元素是不是有0 a = [1, 2, 3] b = [1, 0, 3] c = [0, 0, 0] # an ...
- FTS5与DIY
此文已由作者王荣涛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. FTS5简介 前文已经介绍了FTS3/FTS4,本文着重介绍它们的继任者FTS5. FTS5是在SQLite ...
- Python编译错误总结
1.TypeError: object() takes no parameters 如果你出现了这个报错,请检查你的__init__函数名或者其定义有没有写错.一般是把__init__写成了__int ...
- 调用hcm接口同步员工数据更新员工信息没有同步到bdm
原来是更新的时候,baseEmployeeEntity的id为空,这时候需要把原先的baseEmployeeEntity1的id赋值给baseEmployeeEntity,问题解决
- python016 Python3 数据结构
Python3 数据结构本章节我们主要结合前面所学的知识点来介绍Python数据结构. 列表Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元 ...
- 简单的发红包的PHP算法
假设有有10元钱 ,发给10个人.保证每个人都有钱拿,最少分得0.01.我们最先想到的肯定就是随机.0.01-10随机.但是会出现第一个人就分得9.99的情况.下面就没人可分了.然后就是我的错误思路 ...
- 【bzoj4260】 Codechef REBXOR trie树
Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN. Output 输出一行包含给定表达式可能的最大值. Sample Input ...
- spring security3.1升级到4.1问题(1)访问/j_spring_security_check 404
升级完后,发现登录不进去,把post改成get好了,但是系统的提交表单功能都不能用了,也是解决了很长时间,最后找到了根本原因. spring sercurity 4.0 csrf保护是默认开启的,cs ...
- HDU 4622 (后缀自动机)
HDU 4622 Reincarnation Problem : 给一个串S(n <= 2000), 有Q个询问(q <= 10000),每次询问一个区间内本质不同的串的个数. Solut ...
- gerrit ssh 登陆设置
[root@web ~]# cat ~/.ssh/config Host gerrit User deploy-gerrit Port Hostname gerrit.demo.com Identit ...