C++ 将 std::string 转换为 char*

参考:

std::string to char*

C++ 将 std::string 转换为 char*

目前没有直接进行转换的方法。必须通过string对象的c_str()方法,获取C-style的字符串:

std::string str = "string";
const char *cstr = str.c_str(); 

注意,该方法返回的类型为const char *,不能直接修改返回的C-style字符串,若需要修改则必须先拷贝该字符串:

std::string str = "string";
char *cstr = new char[str.length() + 1];
strcpy(cstr, str.c_str());
// 对cstr的处理
delete [] cstr;

另一种方法是将string转换得到的C-style的字符串存储于vector中:

std::vector<char> cstr(str.c_str(), str.c_str()+str.size()+1);

2018.7.2

原文地址:https://www.cnblogs.com/qq952693358/p/9255669.html

时间: 2024-10-30 17:12:56

C++ 将 std::string 转换为 char*的相关文章

string转换为char*

把string转换为char* 有3中方法: 1.data() 1 string str="abc"; 2 char *p=(char*)str.data(); 2. c_str() 1 string str="gdfd"; 2 const char *p=str.c_str(); 3.copy() 1 string str="hello"; 2 char p[40]; 3 str.copy(p,5,0); //这里5,代表复制几个字符,0代表复

C++ std::unordered_map使用std::string和char *作key对比

最近在给自己的服务器框架加上统计信息,其中一项就是统计创建的对象数,以及当前还存在的对象数,那么自然以对象名字作key.但写着写着,忽然纠结是用std::string还是const char *作key,哪个效率高些.由于这服务器框架业务逻辑全在lua脚本,在C++需要统计的对象没几个,其实用哪个没多大区别.我纠结的是,很久之前就知道这两者效率区别不大,但直到现在我都还没搞清楚为啥,于是写些代码来测试. V1版本的代码如下: #ifndef __MAP_H__ #define __MAP_H__

托管C++中System::String^ 转换为 char*

https://docs.microsoft.com/en-us/cpp/dotnet/how-to-convert-system-string-to-standard-string?view=vs-2019 StringToHGlobalAnsi方法可以把托管 String^对象的内容复制到本机堆, 然后将它转换为 (ANSI) 格式.此方法会分配所需的本机堆内存: //using namespace System::Runtime::InteropServices; char* str2 =

QString, Std::string, char *相互转换

Qt 库中对字符串类型进行了封装,QString 类提供了所有字符串操作方法,给开发带来了便利. 由于第三方库的类型基本上都是标准的类型,即使用std::string或char *来表示字符 (串) 类型,因此在Qt框架下需要将QString转换成标准字符 (串) 类型.下面介绍QString, Std::string, char *相互转换转换方法. std::string和char *的相互转换 1.  将char *或char[]转换为std::string 可直接赋值 std::stri

c++ istream转换为std::string

std::istreambuf_iterator<char> eos; std::string s(std::istreambuf_iterator<char>(stream), eos);---------------------------------------------------------------------------- (could be a one-liner if not for MVP) post-2011 edit, this approach is

C/C++ string和char数组对比

string是c++特有的,使用时需添加头文件#include<string> (一)#include<string.h>和#include<cstring>以及#include<string.h>区别 <string.h> <string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <cstring> 在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新

unicode下各种类型转换,CString,string,char*,int,char[]

把最近用到的各种unicode下类型转换总结了一下,今后遇到其他的再补充: 1.string转CString string a=”abc”; CString str=CString(a.c_str()); 或str.format("%s", a.c_str()) 2.int转CString Int a; CString Cstr; Cstr.Format(_T("%d"),a); 3.char 转 CString CString.format("%s&qu

String转换char数组和int型和Double型

package z; public class z { public static void main(String[] args) { String s = "123"; char[] c = s.toCharArray();// String转换为char[] for (int i = 0; i < c.length; i++) { System.out.println(c[i]); } int s_ = Integer.parseInt(s);// String转换为int

类型转换 String——》Char OR Char ——》String

String转换为char 在Java中将String转换为char是非常简单的.1. 使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char.2. 使用String.toCharArray()(返回值为char[])可以得到将包含整个String的char数组.这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素. char转换为String 将char转换为String大致有6种方法.总结如下: 1. String s