Come ottenere le doppie virgolette in una stringa letterale?

Ho il seguente output creato usando una dichiarazione printf() :

 printf("She said time flies like an arrow, but fruit flies like a banana."); 

ma voglio mettere la citazione effettiva tra virgolette, quindi l’output è

Ha detto “il tempo vola come una freccia, ma il frutto vola come una banana”.

senza interferire con le virgolette utilizzate per avvolgere il letterale stringa nell’istruzione printf() .

Come posso fare questo?

    Fuggi dalle virgolette con i backslash:

     printf("She said \"time flies like an arrow, but fruit flies like a banana\"."); 

    Esistono caratteri di escape speciali che è ansible utilizzare in string letterali e questi sono indicati con una barra rovesciata iniziale.

    Fortunatamente, con C ++ 11 c’è anche l’approccio più piacevole dell’uso di stringhe di stringa raw.

     printf("She said \"time flies like an arrow, but fruit flies like a banana\"."); 

    diventa:

     printf(R"(She said "time flies like an arrow, but fruit flies like a banana".)"); 

    Per quanto riguarda l’aggiunta di parentesi dopo la citazione di apertura, e prima della citazione di chiusura, si noti che possono essere quasi tutte le combinazioni di un massimo di 16 caratteri, aiutando ad evitare la situazione in cui la combinazione è presente nella stringa stessa. In particolare:

    qualsiasi membro del set di caratteri di base di base ad eccezione di: spazio, parentesi sinistra (, parentesi destra), barra rovesciata \ e caratteri di controllo che rappresentano la scheda orizzontale, scheda verticale, avanzamento modulo e nuova linea “(N3936 §2.14.5 [ grammatica lex.string] e “al massimo 16 caratteri” (§2.14.5 / 2)

    Quanto più chiaro rende questa frase banale potrebbe essere discutibile, ma se usato su stringhe formattate come HTML o JSON, è senza dubbio molto più chiaro.