c与c++中一些类型的转化总结(持续更新)
来源:互联网 发布:乎的组词有哪些 编辑:程序博客网 时间:2024/06/15 23:53
一般写小代码时,常常是c和c++不分的,但是有时会遇到类型转换的问题,比如输入 string ,然而处理函数的参数是char*型,之间需要转换。收集一下网上资料,总结一下。因为还没有时间去研究stl源码,暂时先用着吧。
一、string转char*
1、std::string::c_str
Returns a pointer to an array that contains a null-terminated sequence of characters
返回一个数组指针,包含‘\0’的,
例子
// strings and c-strings#include <iostream>#include <cstring>#include <string>int main (){ std::string str ("Please split this sentence into tokens"); char * cstr = new char [str.length()+1]; std::strcpy (cstr, str.c_str()); std::cout<<cstr<<std::endl; delete[] cstr; return 0;}
使用strcpy复制字符串。
char * strcpy ( char * destination, const char * source );
这里面str.c_str()返回的是const char* 类型的。
2、std::string::data
Returns a pointer to an array that contains the same sequence of characters as the characters that make up the value of the string object.
同样返回的是const char* 类型的。
例子
// string::data#include <iostream>#include <string>#include <cstring>int main (){ int length; std::string str = "Test string"; char* cstr = "Test string"; if ( str.length() == std::strlen(cstr) ) { std::cout << "str and cstr have the same length.\n"; if ( memcmp (cstr, str.data(), str.length() ) == 0 ) std::cout << "str and cstr have the same content.\n"; } return 0;}
二、char* 转string
1、直接复制
string str; //getline(cin,str); char * c="test c char to string"; str=c;
2、std::string::assign
Assigns a new value to the string, replacing its current contents.
其中就有将c-string 赋值的情况
string& assign (const char* s);
string str; //getline(cin,str); char * c="test c char to string"; str.assign(c);
暂时更新到这,下次遇到再更新
- c与c++中一些类型的转化总结(持续更新)
- C、C++、MFC中各类数据类型的转化(持续更新中)
- c++(c语言)编程过程中遇到的细微问题总结(持续更新)
- C的一些知识【持续更新】
- C与C++的区别。持续更新中……
- java 进制与类型转化(持续更新)
- iOS --- 总结Objective-C中常用的宏定义(持续更新中)
- Objective-C 开发的一点小总结(持续更新)
- 调试STM32过程中遇到的问题总结(持续更新)--KEIL4+C语言
- C语言的强制类型转化总结
- C 语言的若干问题(持续更新中)
- C/C++ 基础(持续更新中)
- c语言练习题(持续更新中)
- C C++ Java 区别性记忆总结【持续更新中】
- 罕见的C用法(持续更新)
- 有意思的记录-C++(持续更新)
- 一些小技巧,持续更新[C#]
- C语言中那些与顺序有关的内容汇集--持续更新中
- silverlight根据json字符串动态创建实体类
- Matlab的默认工作路径修改
- 线上问题解决思路
- 最牛B的编码套路
- UVa400 Unix ls
- c与c++中一些类型的转化总结(持续更新)
- 让图片始终在TextView的左边
- 在樱花vps上安装win系统(上)
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
- nginx location的root和alias区别
- PHP 初学笔记
- ImageLoader的用法
- VLC在web系统中应用(x-vlc-plugin 即如何把VLC嵌入HTML中)第一篇
- 适合做项目界面抬头的部分---RibbonControl