如何为新字符串指定大小? C ++

时间:2013-10-31 15:23:20

标签: c++ arrays string pointers

我正在尝试创建一个指向字符串的指针数组。我希望每个字符串只有3个字符。这是我到目前为止的代码:

 string **ptr=new string *[100];    // An array of 100 pointers to strings

for (i=0;i<100; i++)            // Assigning each pointer with a new string
{
    ptr[i]=new string;
    (*ptr[i])[3];
}

我遇到线路问题(* ptr [i])[3])。如果我要创建一个只有3个字符的srting而不是通过指针我会写:

string str[3];

如何使用指针分配3个字符?谢谢!

2 个答案:

答案 0 :(得分:8)

std::vector<std::string> vec(100, "   ");

这正是你正在寻找的,而不需要自己管理记忆。

string str[3];

这不会创建一个包含3个字符的字符串,而是一个包含3个字符串的数组。

答案 1 :(得分:-1)

(*ptr[i])[3];只是访问字符串中的第四个字符,它不会调整它的大小。 std :: string DOES虽然提供了resize()方法。

正如已经提到的,string str[3]创建了一个包含三个字符串的数组,但我认为你并不想谈论它。

正如已经指出的那样,你可以使用带有size参数和fill char的字符串ctor,如下所示:

ptr[i]=new string( 3, ' ' );

当然你应该使用vector。