Как инициализировать массив символов из строки - PullRequest
15 голосов
/ 08 июня 2009

Я хочу сделать следующее

char a[] = { 'A', 'B', 'C', 'D'};

Но я не хочу писать эти символы отдельно. Я хочу что-то вроде

#define S "ABCD"

char a[] = { S[0], S[1], S[2], S[3] };

Но это не скомпилируется (gcc говорит, что элемент инициализатора не является константой).

Я попытался заменить строку #define на

const char S[] = "ABCD";

Но это, похоже, не помогает.

Как я могу сделать это (или что-то подобное), которое позволит мне написать «ABCD» как обычную «строку», а не как четыре отдельных символа?

P.S. Кажется, что люди не правильно читают вопрос ...

Я не могу получить следующий код для компиляции:

const char S[] = "ABCD";
char t[] = { S[0], S[1], S[2], S[3] };
char u[] = { S[3], S[2], S[1], S[0] };

Ответы [ 11 ]

0 голосов
/ 08 июня 2009

Прекрасно компилируется в gcc версии 4.3.3 (Ubuntu 4.3.3-5ubuntu4).

const char s[] = "cheese";

int main()
{
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...