📜  C++示例 Char数组转换为C++中的字符串

📅  最后修改于: 2020-10-16 07:40:27             🧑  作者: Mango

Char数组转换为C++中的字符串

与数字和整数不同,“ Char”数据类型或字符数据类型用于存储字母,而数字和整数则以整数,浮点数或布尔值中的true-false值存储。

字符本质上是整数类型,其大小为1字节,可打印字符为(空格),!,“,#,$,%,&,’,(,),*,+ 、、、-,。,/ ,0、1、2、3、4、5、6、7、8、9,:,;,<,=,>,?,@,A,a,B,b,C,c,D,d ,E,e,F,f,G,g,H,h,I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,Q ,q,R,r,S,s,T,t,U,u,V,v,W,w,X,x,Y,y,Z,z,[,\,],^,_,` ,{,|,},〜和DEL(删除)。

我们可以使用-初始化char变量

char ch2 {‘a’};print字符“ a”。

字符ch1 {97};print代码为97的值。

char ch {‘5’};print数字字符“ 5″。

C++为我们提供了以下技术,可将char数组转换为字符串:

  • 使用’c_str()’和’strcpy()’函数
  • 使用“ for”循环
  • “ while”循环,
  • 字符串类中的‘=’运算符
  • 使用自定义函数。

下面给出了使用’c_str()’和’strcpy()’函数的语法:

"string-name.c_str();".

其中,c_str()将字符串的内容转换为C样式的,非终止的字符串。它提供对内部字符串缓冲区的直接访问。

我们可以通过以下方式使用“ for”循环将字符转换为字符串:

首先,声明字符数组,然后分配数组的大小。然后,我们声明两个变量,一个是字符串类型,另一个是int类型。此后,我们可以通过为int变量分配0来使用“ for”循环,其中int变量的值将小于array_size,并且每次迭代我们将int变量的值增加1。我们有显示字符串变量之前,在每个迭代的字符串变量的值存储。

码:-

#include 
using namespace std;
int main() 
{
    char char_array[] = {'J','A','V','A','T','P','O','I','N','T'};
    int array_size = sizeof(char_array) /
    sizeof(char);
    string j = "";
    int i;
    for(i = 0; i < array_size; i++)
   {
    /** retrieving and merging the value of character array on position 'i'*/  
    j = j + char_array[i];
    }
    cout << j <

输出:

我们可以通过以下方式使用’while’循环将char转换为字符串:

首先声明字符数组,然后分配数组的大小。然后,我们声明两个变量,一个是字符串类型,另一个是值0的int类型。我们使用“ while”循环在每次迭代中检查小于array_size的int变量,并在显示字符串变量之前将值存储在字符串变量中。

码:-

#include 
using namespace std;
int main() 
{
    char char_array[] = {'J','A','V','A','T','P','O','I','N','T'};
    int array_size = sizeof(char_array) / sizeof(char);
    string j = "";
    int i = 0;
    while(i < array_size)
  {
        /**retrieving and merging the value of character array on position `i`*/
        j = j + char_array[i];
        i++;
    }
    cout << j <

输出:

要使用std :: 字符串构造函数将字符转换为字符串,我们只需将数组传递给字符串构造函数即可。

码:-

#include  
using namespace std;
int main()
{
char char_array[] = {'J','A','V','A','T','P','O','I','N','T'};
string j(char_array);
cout << j <

输出:

要使用’=’运算符和字符串类将字符数组转换为字符串,我们必须将字符数组传递给字符串变量。

码:-

#include 
  using namespace std;
   int main()
{
   char char_array[] = {'J','A','V','A','T','P','O','I','N','T'};
   string j = char_array;
   cout << j <

输出:

为了使用自定义函数将字符转换为字符串,我们必须创建一个具有两个参数的自定义函数。在自定义函数,我们必须声明两个变量字符串和integer。然后,我们使用“ for”循环,在其中将0分配给int变量,将int变量的大小小于array_size,并在每次迭代时将int变量的值增加1。该函数将返回字符串。对于主函数,我们声明字符数组及其大小,然后将字符数组及其大小传递给自定义函数。最后,我们print存储自定义函数的返回值的字符串变量。

代码-

#include 
using namespace std;
string charToString(char* arr_char, int arr_size)
{
 int i;
 string j = "";
  for(i = 0; i < arr_size; i++)
  {
  j = j + arr_char[i];
  }
   return j;
}
  int main() {
    char char_array[] = {'J','A','V','A','T','P','O','I','N','T'};
    int array_size = sizeof(char_array) / sizeof(char);
     string jtp = "";
    jtp = charToString(char_array, array_size);
    cout << jtp <

输出:

将char转换为字符串的最后一种方法是使用std :: stringstream实现的。我们使用这个函数来输入字符插入到一个缓冲区,然后使用的std :: 字符串从缓冲区作为一个字符串采取的字符。

代码-

#include 
#include 
int main()
{   
    char char_array[] = {'J','A','V','A','T','P','O','I','N','T'};
    std::string jtp;
    std::stringstream strStream;
    strStream << char_array;
    strStream >> jtp;
    std::cout << jtp;
    return 0;
}

输出: