您的位置:

string数组初始化详解

一、string数组初始化长度

string数组是由多个string类型元素组成的数组。在初始化一个string数组时,我们可以指定数组的长度。


#include <iostream>
#include <string>

using namespace std;

int main()
{
    int n;
    cout << "请输入数组长度: " << endl;
    cin >> n;
    
    string arr[n];
    
    cout << "数组长度为:" << sizeof(arr)/sizeof(string) << endl;
    
    return 0;
}

在以上示例中,我们通过用户输入的方式确定了string数组的长度,然后输出了数组的长度。需要注意的是,在C++11标准中,声明动态长度的数组是合法的,但在低于C++11的标准中是非法的。

二、string数组初始化为空

在一些情况下,我们需要初始化一个空的string数组。


#include <iostream>
#include <string>

using namespace std;

int main()
{
    int n;
    cout << "请输入数组长度: " << endl;
    cin >> n;
    
    string arr[n] = {};
    
    cout << "数组长度为:" << sizeof(arr)/sizeof(string) << endl;
    
    return 0;
}

以上示例中,我们用大括号来初始化一个空的string数组。这里的大括号和普通大括号并不一样,它表示初始化所有的元素为空,即空字符串。

三、string数组初始化赋值

除了初始化为空,我们还可以在初始化时为数组元素赋值。


#include <iostream>
#include <string>

using namespace std;

int main()
{
    string arr[3] = {"apple", "banana", "orange"};
    
    for(int i=0; i<3; i++)
    {
        cout << arr[i] << endl;
    }
    
    return 0;
}

在以上示例中,我们用花括号来初始化并赋值一个长度为3的string数组。我们可以看到,数组的每个元素都被成功赋值。

四、cstring数组初始化

在C++中,我们也可以使用字符数组来初始化string数组。这样做的好处是可以提高程序效率,减少内存占用。


#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int main()
{
    char ch_arr[3][10] = {"apple", "banana", "orange"};
    string str_arr[3];
    
    for(int i=0; i<3; i++)
    {
        str_arr[i] = ch_arr[i];
        cout << str_arr[i] << endl;
    }
    
    return 0;
}

在以上示例中,我们使用一个2维字符数组来初始化一个string数组。

五、string数组初始化每个元素默认值

在C++中,string类型的默认值是空字符串。所以当我们初始化一个string数组时,每个元素的默认值都是空字符串。


#include <iostream>
#include <string>

using namespace std;

int main()
{
    string arr[3];
    
    for(int i=0; i<3; i++)
    {
        cout << arr[i] << endl;
    }
    
    return 0;
}

在以上示例中,我们初始化了一个长度为3的string数组。我们可以看到,每个元素都被默认初始化为了空字符串。

六、定义一个string数组

在C++中,我们可以使用以下语法来定义一个string数组。


string arr[数组长度];

其中,数组长度必须是一个正整数。

七、string数组默认值

在C++中,string类型的默认值是空字符串。所以当我们定义一个string数组时,每个元素的默认值都是空字符串。


string arr[3];

在以上示例中,我们定义了一个长度为3的string数组。我们可以看到,每个元素都被默认初始化为了空字符串。

八、string数组包含字符串

在C++中,我们可以用以下方式将字符串存储在string数组中。


string arr[] = {"apple", "banana", "orange", "grape"};

在以上示例中,我们通过花括号包围将多个字符串存储在一个string数组中。数组的每个元素都是一个字符串。

九、将string转化为int数组

在C++中,string类型本身是不能直接转换为int类型的。不过我们可以使用stoi()函数将string类型的数值转换为int类型。


#include <iostream>
#include <string>

using namespace std;

int main()
{
    string arr[] = {"1", "2", "3", "4", "5"};
    int int_arr[5];
    
    for(int i=0; i<5; i++)
    {
        int_arr[i] = stoi(arr[i]);
        cout << int_arr[i] + 1 << endl;
    }
    
    return 0;
}

在以上示例中,我们用string数组初始化了一个包含5个字符串的数组。然后,我们使用stoi()函数将每个字符串转化为int类型,并输出结果。