массив строковых типов C ++ - PullRequest
       3

массив строковых типов C ++

0 голосов
/ 11 сентября 2010

Это мои переменные:

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

, когда я запускаю мою программу, licNameToCheckFor инициализируется только с "PROF" и больше ничего.Что я делаю неправильно?

Ответы [ 2 ]

2 голосов
/ 11 сентября 2010

Как вы проверяете, правильно ли он был инициализирован? Скорее всего, вы делаете это неправильно, потому что код абсолютно корректен:

#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;
    }
}

Выход:

$ g++ -o test ./test.cpp
$ ./test 
PROF
PERS
PREM

Вы также можете упростить свой код, не указав количество строк в массиве, например:

string licNameToCheckFor [] = { "PROF", "PERS", "PREM" };
2 голосов
/ 11 сентября 2010

У меня работает.

Почему вы думаете, что это не работает?

#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 >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...