C++ char*类型与vector类型的相互转换

风陵南 / 2024-08-09 / 原文

char*类型与vector<char> 类型的相互转换

很多时候需要使用动态的字符串,但是char*难以完成相应的扩容操作,而动态数组vector则可以简单地完成,结合二者特性就可以完成动态字符串,同时,也需要二者类型的相互转换:

  • char* 转vector<char>
    •  vector<char> buffer(ch, ch+4);
  • vector<char> 转char*
    •  char *s = &buffer[0];
#include "iostream"
#include "vector"
using namespace std;

void printVector(vector<char> v){
	for (vector<char>::iterator iter = v.begin(); iter != v.end(); iter++){
		cout << *iter;
	}
	cout << endl;
}

int main(){
	char * ch = "1234";
	// char * 类型转换为 vector<char> 类型
	vector<char> buffer(ch, ch+4);
	cout << "vector :";
	printVector(buffer);
	// vector<char> 类型转换为 char* 类型
	char *s = &buffer[0];
	cout << "char * :" << s << endl;;
	system("pause");
	return 0;
}