本文介绍如何在C++中将字符数组转换为字符串。
C++中的std ::字符串具有许多内置函数,这使实现比处理字符数组要容易得多。因此,如果将字符数组转换为字符串,通常会更容易工作。
例子:
Input: char s[] = { 'g', 'e', 'e', 'k', 's', 'f', 'o',
'r', 'g', 'e', 'e', 'k', 's' } ;
Output: string s = "geeksforgeeks" ;
Input: char s[] = { 'c', 'o', 'd', 'i', 'n', 'g' } ;
Output: string s = "coding" ;
- 方法1:
方法:- 获取字符数组及其大小。
- 创建一个空字符串。
- 遍历字符数组。
- 当你迭代继续我们串接的字符数组的字符串中遇到的字符。
- 返回字符串。
下面是上述方法的实现。
// Demonstrates conversion // from character array to string #include
using namespace std; // converts character array // to string and returns it string convertToString(char* a, int size) { int i; string s = ""; for (i = 0; i < size; i++) { s = s + a[i]; } return s; } // Driver code int main() { char a[] = { 'C', 'O', 'D', 'E' }; char b[] = "geeksforgeeks"; int a_size = sizeof(a) / sizeof(char); int b_size = sizeof(b) / sizeof(char); string s_a = convertToString(a, a_size); string s_b = convertToString(b, b_size); cout << s_a << endl; cout << s_b << endl; return 0; } 输出:CODE geeksforgeeks
- 方法2:
std ::字符串具有内置的构造函数,可以为我们完成工作。此构造函数将以空终止的字符序列作为输入。但是,我们只能在声明字符串时使用此方法,并且不能再次用于同一字符串,因为它使用仅在声明字符串时才调用的构造函数。方法:
- 获取字符数组及其大小。
- 声明一个字符串(即字符串类的一个对象),同时将字符数组作为其构造函数的参数。
- 使用语法: 字符串 string_name(character_array_name);
- 返回字符串。
下面是上述方法的实现。
// Demonstrates conversion // from character array to string #include
using namespace std; // uses the constructor in string class // to convert character array to string string convertToString(char* a, int size) { string s(a); // we cannot use this technique again // to store something in s // because we use constructors // which are only called // when the string is declared. // Remove commented portion // to see for yourself /* char demo[] = "gfg"; s(demo); // compilation error */ return s; } // Driver code int main() { char a[] = { 'C', 'O', 'D', 'E' }; char b[] = "geeksforgeeks"; int a_size = sizeof(a) / sizeof(char); int b_size = sizeof(b) / sizeof(char); string s_a = convertToString(a, a_size); string s_b = convertToString(b, b_size); cout << s_a << endl; cout << s_b << endl; return 0; } 输出:CODE geeksforgeeks
- 方法3:
这样做的另一种方法是使用重载的’=’运算符,该运算符在C++ std :: 字符串也可用。方法:
- 获取字符数组及其大小。
- 声明一个字符串。
- 使用重载“=”运算符的字符阵列,以在字符串中指定的字符。
- 返回字符串。
下面是上述方法的实现。
// Demonstrates conversion // from character array to string #include
using namespace std; // uses overloaded '=' operator from string class // to convert character array to string string convertToString(char* a, int size) { string s = a; return s; } // Driver code int main() { char a[] = { 'C', 'O', 'D', 'E' }; char b[] = "geeksforgeeks"; int a_size = sizeof(a) / sizeof(char); int b_size = sizeof(b) / sizeof(char); string s_a = convertToString(a, a_size); string s_b = convertToString(b, b_size); cout << s_a << endl; cout << s_b << endl; return 0; } 输出:CODE geeksforgeeks
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。