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++字符串和其他类型转换的更多相关文章

  1. python学习番外篇——字符串的数据类型转换及内置方法

    目录 字符串的数据类型转换及内置方法 类型转换 内置方法 优先掌握的方法 需要掌握的方法 strip, lstrip, rstrip lower, upper, islower, isupper 插入 ...

  2. Java 日期字符串与日期类型转换

    1.SimpleDateFormat.format 把日期类型转化到指定格式字符串 public static String convToString(Calendar cld,String temp ...

  3. javaBean中 字符串 转 date 类型转换

    1-----创建javabean 代码如下 package BeanUtils; import java.util.Date; public class Admin { private String ...

  4. oracle的concat、convert、listagg函数(字符串拼接和类型转换)

    ORACLE几种常用的方法(2) 1.concat常见的用法 : 格式:concat(String1,String2) 说明:concat函数用于将两个字符串连接起来,形成一个单一的字符串 实例: s ...

  5. day03 for循环、字符串方法、类型转换

    01 上周内容回顾 while 条件: 循环体 例: while True: print(111) print(222) print(333) 结束循环的两种方式: 1,改变条件. 2,break. ...

  6. Struts2入门(三)——数据类型转换

    一.前言 笔者一直觉得,学习一个知识点,你首先要明白,这东西是什么?有什么用?这样你才能了解.好了,不说废话. 1.1.类型转换为何存在?什么是类型转换? 在MVC框架中,都是属于表示层解决方案,都需 ...

  7. Objective-C精选字符串处理方法

    无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析和操作我们可以用正则表达式来达到我们的目的.简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解 ...

  8. Foundation框架—字符串(NSString)

    一 NSString不可变字符串 1.字符串的创建 //创建字符串常量 NSString *string1 = @"hello"; string1 = @"hello w ...

  9. Java OOP中的字符串篇

    字符串的三大特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String.St ...

随机推荐

  1. 牛客ACM赛 C 区区区间间间

    链接 C 区区区间间间 给定长度为\(n\)序列,求\[\sum_{i=1}^{n} \sum_{j=i}^{n} max-min\] 其中\(max\),\(min\)为区间最大,最小值,\(n\l ...

  2. 覆盖(Override)和重写(Overload)的区别

    Overload Overload是重载的意思. 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同). Overload对我们来说可能比较 ...

  3. Java数组重修,猜数小游戏改进和打印正三角形

    数组重修,猜数小游戏 要求:从键盘输入一个数,判断数组是否包含此数,运用随机数 我们可能会这样写 import java.util.Random; import java.util.Scanner; ...

  4. 启动模式:uefi, legacy,以及GRUB命令使用

    机器启动模式:uefi, legacy 设置入口:BIOS:boot mode 磁盘分区表格式: gpt uefi所使用(此种模式下,grub只能识别gpt格式的boot引导项) mbr legacy ...

  5. css3新增的属性 - 分享

    CSS3新增属性   一.transform变换效果 CSS3 提供了元素变形效果,也叫做变换.它可以将元素实现旋转.缩放和平移的功能. 属性有两个:transform 和 transform-ori ...

  6. 4,fail-fast错误机制

    一,fail-fast简介 在JDK的Collection中我们时常会看到类似于这样的话: ArrayList 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出 ...

  7. SPFA的两个优化

    评测题:洛谷[模板]单源最短路径 不加任何优化: queue<int>q; void spfa(ll s) { ;i<=n;i++) d[i]=(ll)(); d[s]=;q.pus ...

  8. HDU | Friend Chains-4460 SPFA

    题目: Problem DescriptionFor a group of people, there is an idea that everyone is equals to or less th ...

  9. 如何选择Linux操作系统版本?

    一般来讲, 桌面用户首选Ubuntu; 服务器首选RHEL或CentOS, 两者中首选CentOS; 根据具体要求: 1.安全性要求较高, 则选择Debian或者FreeBSD. 2.需要要使用数据库 ...

  10. Linux shell 归纳之 last

    使用方法: 格式1:last -n n指定账号数量,最新前n个登陆信息(用户,终端,IP, 日期,时间和持续时间) 格式2:last -n <number of the latest accou ...