C-字符串数组的长度

C-字符串数组的长度,c,arrays,string,C,Arrays,String,我有我的字符串数组->*nome[]={“String1”、“String2”、“String3”} 现在,我想迭代所有字符串 我已经试过了 while(nome[i] != '\0') 但我总是遇到同样的问题-分割错误您可以使用容器,例如vector #include <iostream> #include <string> #include <vector> using namespace std; int main() { vector&

我有我的字符串数组->
*nome[]={“String1”、“String2”、“String3”}

现在,我想迭代所有字符串

我已经试过了

while(nome[i] != '\0') 

但我总是遇到同样的问题-分割错误

您可以使用容器,例如vector

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    vector<string> svec;
    /*append some elements*/
    svec.push_back("string1");
    svec.push_back("string2");
    svec.push_back("string3");

    for(vector<string>::iterator it = svec.begin();
            it != svec.end(); ++it)
    {
        //do something
    }
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
向量svec;
/*附加一些元素*/
svec.推回(“string1”);
svec.推回(“string2”);
svec.推回(“string3”);
对于(vector::iterator it=svec.begin();
it!=svec.end();++it)
{
//做点什么
}
}
使用迭代器,您不需要知道数组在哪里溢出,分段错误可能不会发生。希望能对您有所帮助

更改为
*nome[]={“String1”、“String2”、“String3”、NULL}
并将循环更改为
,而(nome[i]!=NULL)