1. 程式人生 > >【C++ / Java】char陣列和string的相互轉換及自動轉換

【C++ / Java】char陣列和string的相互轉換及自動轉換

一般的轉換:

#include<cstdio>
#include<cstring>
#include<string>
using namespace std;

char str[100];
string s;

int main()
{
	//scanf("%s",str);
	strcpy(str, "trans");
	s = string(str); // char陣列轉string, 也可以string s(str);初始化
	strcpy(str, s.c_str()); // string轉char陣列
	printf("%s", str);
	return 0;
}

在STL中,char陣列可以自動轉換成string傳入:

#include <cstdio>
#include <list>
#include <string>
using namespace std;

char str[100];

int main()
{
	scanf("%s",str);
	list<string> li;
	li.push_front(str);//char陣列自動轉化成string
    printf("%s",li.front().c_str());//string轉char陣列
    return 0;
}

Java的處理:

public class test {

	public static void main(String[] args) {
		char[] data = { 's', 'g', 'k' };
		String str = new String(data);

		char[] data2 = { 's', 'g', 'h' };
		String n = String.valueOf(data2);

		data2 = n.toCharArray();
	}
}