Строковый литерал мультилинии C++

Во втором примере присваивается уникальный идентификатор рассматриваемому элементу. Этот элемент может быть затем обработан или доступен с помощью DHTML.

Первый, с другой стороны, устанавливает именованное местоположение в документе, похожее на закладку. Прикрепленный к «якору», он имеет смысл.

381
задан kokociel 8 December 2013 в 01:36
поделиться

2 ответа

Ну ... вроде того. Самый простой - просто использовать тот факт, что смежные строковые литералы объединяются компилятором:

const char *text =
  "This text is pretty long, but will be "
  "concatenated into just a single string. "
  "The disadvantage is that you have to quote "
  "each part, and newlines must be literal as "
  "usual.";

Отступ не имеет значения, поскольку он не находится внутри кавычек.

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

const char *text2 =
  "Here, on the other hand, I've gone crazy \
and really let the literal span several lines, \
without bothering with quoting each line's \
content. This works, but you can't indent.";

Опять же, обратите внимание на эти обратные косые черты в конце каждой строки, они должны быть непосредственно перед концом строки, они экранируют новую строку в источнике, так что все действует так, как будто новой строки не было. Вы не получаете символы новой строки в строке в тех местах, где у вас была обратная косая черта. С этой формой вы, очевидно, не можете сделать отступ для текста, поскольку в этом случае отступ станет частью строки,

547
ответ дан 22 November 2019 в 23:55
поделиться

Вы можете просто сделать это:

const char *text = "This is my string it is "
     "very long";
13
ответ дан 22 November 2019 в 23:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: