在 C++ 中,单个字符与字符串之间的相互转换有多种方法。以下是几种常见的写法:

1. 单个字符转字符串

将单个字符转换为字符串:

方法 1:使用 std::string 构造函数

char ch = 'a';
std::string str(1, ch);  // 将字符转换为字符串
  • 1.
  • 2.
string构造函数的用法

string构造函数
构造函数原型:
string(); //创建一个空的字符串 例如: string str;
string(const char* s); //使用字符串s初始化
string(const string& str); //使用一个string对象初始化另一个string对象
string(int n, char c); //使用n个字符c初始化

#include<iostream>
using namespace std;
#include <string>

//string构造
void test01()
{
	string s1; //创建空字符串,调用无参构造函数
	cout << "str1 = " << s1 << endl;

	const char* str = "hello world";
	string s2(str); //把c_string转换成了string

	cout << "str2 = " << s2 << endl;

	string s3(s2); //调用拷贝构造函数
	cout << "str3 = " << s3 << endl;

	string s4(10, 'a');
	cout << "str3 = " << s3 << endl;
}

int main() {

	test01();
	return 0;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.

总结:string的多种构造方式没有可比性,灵活使用即可

方法 2:使用 std::stringoperator+=

char ch = 'a';
std::string str;
str += ch;  // 将字符追加到字符串中
  • 1.
  • 2.
  • 3.

方法 3:使用 std::stringstream

#include <sstream>

char ch = 'a';
std::stringstream ss;
ss << ch;
std::string str = ss.str();  // 将字符转换为字符串
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

2. 字符串转单个字符

将字符串的第一个字符转换为单个字符:

方法 1:直接通过字符串索引

std::string str = "abc";
char ch = str[0];  // 获取字符串的第一个字符
  • 1.
  • 2.

方法 2:使用 at() 方法

std::string str = "abc";
char ch = str.at(0);  // 使用 `at()` 方法获取字符串的第一个字符
  • 1.
  • 2.

方法 3:使用 c_str() 方法

std::string str = "abc";
char ch = *str.c_str();  // 获取字符串的首字符
  • 1.
  • 2.

3. 字符串的最后一个字符

获取字符串的最后一个字符:

std::string str = "abc";
char ch = str.back();  // 获取最后一个字符
  • 1.
  • 2.

这几种方法可以灵活应用于不同的场景中,例如处理输入输出、字符串操作等。

注意 std::to_string 函数并不能直接用于单个字符

因为 to_string 是用于将数值类型转换为字符串的,而字符并不是数值类型。