C++ C++;字符串类型

C++ C++;字符串类型,c++,arrays,string,C++,Arrays,String,以下是我的变量: const int sizeOfLicToCheckFor = 3; string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" }; 当我运行我的程序时,licNameToCheckFor只被初始化为“PROF”,其他什么都没有。 我做错了什么 对我有用 你为什么认为它不起作用 #include <string> #include <iostream>

以下是我的变量:

    const int sizeOfLicToCheckFor = 3;
string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };
当我运行我的程序时,licNameToCheckFor只被初始化为“PROF”,其他什么都没有。 我做错了什么

对我有用

你为什么认为它不起作用

#include <string>
#include <iostream>

const int sizeOfLicToCheckFor = 3;
std::string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };

int main(int argc, char** argv)
{
    std::cout << licNameToCheckFor[0] << " ";
    std::cout << licNameToCheckFor[1] << " ";
    std::cout << licNameToCheckFor[2] << " ";
}

> vi t.cpp
> g++ t.cpp
> ./a.exe
PROF PERS PREM >
#包括
#包括
const int sizeOfLicToCheckFor=3;
std::string licNameToCheckFor[sizeOfLicToCheckFor]={“PROF”、“PERS”、“PREM”};
int main(int argc,字符**argv)
{
std::cout适合我

你为什么认为它不起作用

#include <string>
#include <iostream>

const int sizeOfLicToCheckFor = 3;
std::string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };

int main(int argc, char** argv)
{
    std::cout << licNameToCheckFor[0] << " ";
    std::cout << licNameToCheckFor[1] << " ";
    std::cout << licNameToCheckFor[2] << " ";
}

> vi t.cpp
> g++ t.cpp
> ./a.exe
PROF PERS PREM >
#包括
#包括
const int sizeOfLicToCheckFor=3;
std::string licNameToCheckFor[sizeOfLicToCheckFor]={“PROF”、“PERS”、“PREM”};
int main(int argc,字符**argv)
{

std::cout您如何检查它是否正确初始化?很可能是因为代码绝对正确,所以您这样做是错误的:

#include <string>
#include <iostream>

using namespace std;

int
main ()
{
    const int sizeOfLicToCheckFor = 3;
    string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };
    for (int i = 0; i < sizeOfLicToCheckFor; ++i)
    {
        cout << licNameToCheckFor[i] << endl;
    }
}
还可以通过不指定数组中字符串的数量来简化代码,如下所示:

string licNameToCheckFor [] = { "PROF", "PERS", "PREM" };

您如何检查它是否正确初始化?很可能是因为代码绝对正确,所以您做得不对:

#include <string>
#include <iostream>

using namespace std;

int
main ()
{
    const int sizeOfLicToCheckFor = 3;
    string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };
    for (int i = 0; i < sizeOfLicToCheckFor; ++i)
    {
        cout << licNameToCheckFor[i] << endl;
    }
}
还可以通过不指定数组中字符串的数量来简化代码,如下所示:

string licNameToCheckFor [] = { "PROF", "PERS", "PREM" };

调试器是否显示不正确的变量值?我正在测试是否用调试器正确初始化了字符串。您使用了什么调试器?它显示给了您什么?可能只显示数组的第一个元素“需要更多的输入”(c)im使用VS2008 C++中的调试器。我运行了代码几次,没有骰子。“教授"每次都是。我尝试了CString,它在调试器中显示了数组中的所有值。字符串是怎么回事?@TheFuzz:string没有问题。可能是您误读了调试器的输出。调试器会显示错误的变量值吗?我正在测试我的字符串是否正确地用调试器初始化。W您使用的是什么?是否显示了数组的第一个元素?“需要更多的输入”(c)im使用VS2008 C++中的调试器。我运行代码几次,没有骰子。它的“教授”每次都是。我尝试了CString,它在调试器中显示了数组中的所有值。string是怎么回事?@TheFuzz:string没有什么问题。可能是您误读了调试器的输出。