String类到CString转换时出错

时间:2015-08-03 06:33:12

标签: c++ arrays string c-strings

我想把三个String变量放在一个数组中,彼此相互作为CString。这段代码给我一个错误的声明。

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

int main()
{
    string Str1, Str2, Str3;
    cin >> Str1 >> Str2 >> Str3;

    int length_Str1 = Str1.size(), length_Str2 = Str2.size(), length_Str3 = Str3.size();
    char aCString[length_Str1+length_Str2+length_Str3+1];

    string Str_Array [] = {Str1, Str2, Str3};
    strcpy(aCString, Str_Array.c_str());

    return 0;
}

1 个答案:

答案 0 :(得分:2)

<强>错误:

代码中有两个错误:

1. 14:32: error: request for member 'c_str' in 'Str_Array', which is of non-class type 'std::string [3] {aka std::basic_string<char> [3]}' 2. 14:39: error: 'strcpy' was not declared in this scope

<强>理由:

  
      
  • 第一个错误是因为你试图给c_str打电话   Str_Array这是一个指向字符串数组的指针,正确的方法   是为了一个字符串本身,即Str_Array[someIndexOfArray]
  •   
  • 第二个错误背后的原因是包含方法string.h的{​​{1}}未包含在程序中。
  •   

<强>解决方案:

请尝试以下代码:

strcpy

希望这有帮助。