2014-01-15 3 views
3

Я пытаюсь использовать команды bash изнутри приложения C++; который также имеет строки внутри команды bash, и когда я пытаюсь скомпилировать ... компилятор видит строку как две отдельные строки рядом друг с другом. Посмотрите на следующий код:Мне нужно вставить «» внутри другого »«

const char* command = "echo -e "\e[31mHello World\e[0m"" 

Как вставить строку, эхо читает -inside строка, эхо себя в? Спасибо заранее.

+1

+1, потому что это сложно Google, если вы не знаете правильные слова, чтобы использовать. – djechlin

+0

@djechlin 'Баша поставить кавычки внутри quotes' дает мне StackOverflow вопрос о том, как избежать первого результата. –

+0

@remyabel случая – djechlin

ответ

8

Термин, который вы ищете, является «ускользающим». Escape ", поставив перед ним \.

const char* command = "echo -e \"\e[31mHello World\e[0m\"" 

Многие языки используют это решение. Положите обратную косую черту перед специальным символом, чтобы деактивировать его особый смысл и интерпретировать его как текст. Это называется экранированием.

1

Я ответил на ваш вопрос конкретно, но я хочу опубликовать совершенно иной подход к этой проблеме:

Ваше оригинальное название было что-то вроде

мне нужно вставить «» «внутри другого» ""

Гугл, который не помогает. Но добавление «C++» и изменить его на:

мне нужно вставить цитату в другой цитате C++

дает много много ответов, например,

How to get double quotes into a string literal?

Итак: ваше решение проблемы должно включать в себя первый пытается все различные способы сказать пунктуацию, насколько это возможно. «Цитата», «Двойная цитата,« апострофа »(не так, но кто заботится?) И т. Д. Все должны быть первыми. Затем попробуйте такие вещи, как« строка вокруг строки »и т. Д. Это общая стратегия для этого типа проблем .

Смежные вопросы