char数组与string转换

1、char数组转string

有很多种方法:
假设c字符串定义为char ch[]="hello world!";
1.向构造函数传入c字符串创建string对象:
string str(ch);
2.使用拷贝构造函数创建string对象:
string str = ch;
3.对已有的string对象调用string类内部定义的赋值运算符:
string str;
str = ch; 

前两种类似,但和第三种有较大区别,前两种是运用构造函数直接创建一个内容与c字符串一致的string对象;第三种是c++标准库编写的string类的内部重载了赋值运算符,使之能够以c字符串作为右操作数对string对象进行赋值,使string对象的内容与c字符串一致。

2、string转char数组

1. c_str():生成一个const char*指针,指向以空字符终止的数组。

② c_str()返回一个客户程序可读不可改的指向字符数组的指针,不需要手动释放或删除这个指针。

2. data():与c_str()类似,但是返回的数组不以空字符终止。

3. copy(p,n,size_type _Off = 0):从string类型对象中至多复制n个字符到字符指针p指向的空间中。默认从首字符开始,但是也可以指定,开始的位置(记住从0开始)。返回真正从对象中复制的字符。------用户要确保p指向的空间足够保存n个字符

char数组与string转换

时间: 2024-12-11 07:19:57

char数组与string转换的相关文章

delphi char数组、string和Pchar的相互转换

因为要调用windows的api或者给vc++写接口,很多地方都要用到pchar,现在将char数组.string和pchar之间的相互转换都列出来,都是网上找的资料,我总结一下,先直接上代码,再讲原理. 1.string转换成pchar 可以使用pchar进行强制类型转换,也可以使用StrPCopy函数 var s:string; p,p1:PChar; begin s:='Hello Delphi'; p:=PChar(s); ShowMessage(p); p1:=StrAlloc(Len

char数组和string的相互转换

1 //char数组和string的转换 2 #include<iostream> 3 #include<string.h> 4 using namespace std; 5 int main() 6 { 7 char ch[]="hello world"; 8 // string s=ch;/* string可以直接用char数组赋值*/ 9 string s(ch);/* 对string赋值char数组差不多就这两种*/ 10 cout<<&qu

char数组构造string

这是一个老掉牙的话题, 但是你稍加不注意就会出错. 最近在写一个可以跨平台打印的程序,就遇到这个问题,故记之.共勉! 用 char 数组初始化string #include <string> using std::string; using std::cout; int main(int argc, const char * argv[]) { char chArray[] = {'m', 'a', 'r', 'k'}; cout << "array size = &qu

JAVA关于byte数组与String转换的问题

1 public class ToString{ 2 public static void main(String[] args){ 3 String aa = "hellow"; 4 byte[] bb = aa.getBytes(); 5 byte[] cc = aa.getBytes(); 6 7 System.out.println(aa); 8 System.out.println(bb.toString()); 9 System.out.println(cc.toStrin

Java中char[]数组与String类型的相互转换

String str=akjldjslkjdls"; char[] strToChars; //String 转换成char[] strToChars= str.toCharArray(); //char[] 转换成String str= String.valueOf(strToChars); str=new String(strToChars); 注:这里char[]转换成String时不能直接使用strToChar.toString(),因调用toString()方法实际是调用Object类

JavaSE8基础 String 通过构造方法 将一维char数组化为String

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku.t01; public class Demo { public static void main(String[] args) { char[] data = { 'a', 'b', 'c' }; String str = new String(data); System.

PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组转换

PChar,PAnsiChar,String,AnsiString,Char数组,AnsiChar数组之间的转换关系见下图 通过转换链,可以实现任意两个类型之间的互转.如PChar转PAnsiChar,根据转换链可知 Dest := PAnsiChar(AnsiString(Source)),同理PAnsiChar转PChar为 Dest:= PChar(String(Source)) 如果转换结果最终为string,可以无需String转换,如Array[0..n] of AnsiChar转s

CString string char* char 之间的字符转换(多种方法)

在写程序的时候,我们经常遇到各种各样的类型转换,比如 char* CString string 之间的互相转换.首先解释下三者的含义. CString 是一种很有用的数据类型.它们很大程度上简化了MFC中的许多操作(适用于MFC框架),使得MFC在做字符串操作的时候方便了很多.需要包含头文件#include <afx.h>. C++中的string用于便是字符串,功能比较强大.要想使用标准C++中string类,必须要包含#include <string>// 注意是<str

Delphi中的PChar、String、Char数组

参考:http://blog.csdn.net/procedure1984/article/details/5419616 一.三者的区别 string和char数组都是一块内存,其中存放着连续的字符. string保存具体字符的内存对用户是透明的,有Delphi管理它的分配.复制和释放,用户不能干预(其实也可以,不过是通过非法途径) Char数组类似于C/C++中的字符数组 PChar是一个指针,它的大小只有32位.定义时由Delphi自动填0.要将PChar作为字符串使用的话,必须自己分配内