Saltar al contenido

como dividir un string literal en varias líneas en C / Objective-C?

Este equipo especializado despúes de muchos días de investigación y recopilación de de información, encontramos los datos necesarios, deseamos que te sea útil para tu plan.

Solución:

Hay dos formas de dividir cadenas en varias líneas:

Usando

Todas las líneas en C se pueden dividir en varias líneas usando .

Llano C:

char *my_string = "Line 1 
                   Line 2";

C objetivo:

NSString *my_string = @"Line1 
                        Line2";

Mejor enfoque

Hay un mejor enfoque que funciona solo para cadenas.

Llano C:

char *my_string = "Line 1 "
                  "Line 2";

C objetivo:

NSString *my_string = @"Line1 "
                       "Line2";    // the second @ is optional

El segundo enfoque es mejor, porque no se incluyen muchos espacios en blanco. Sin embargo, para una consulta SQL, ambos son posibles.

NOTA: con #define, debe agregar un ” adicional para concatenar las dos cadenas:

Llano C:

#define kMyString "Line 1"
                  "Line 2"

Hay un truco que puedes hacer con el preprocesador.
Tiene las desventajas potenciales de colapsar los espacios en blanco y podría ser confuso para las personas que leen el código.
Pero tiene la ventaja de que no necesita escapar de los caracteres de comillas en su interior.

#define QUOTE(...) #__VA_ARGS__
const char *sql_query = QUOTE(
    SELECT word_id
    FROM table1, table2
    WHERE table2.word_id = table1.word_id
    ORDER BY table1.word ASC
);

el preprocesador convierte esto en:

const char *sql_query = "SELECT word_id FROM table1, table2 WHERE table2.word_id = table1.word_id ORDER BY table1.word ASC";

Usé este truco cuando estaba escribiendo algunas pruebas unitarias que tenían cadenas literales grandes que contenían JSON. Significaba que no tenía que escapar de cada carácter de comilla “.

También puede ir a XCode -> Preferencias, seleccionar la pestaña Sangría y activar Ajuste de línea.

De esa manera, no tendrá que escribir nada adicional y funcionará con las cosas que ya escribió. 🙂

Sin embargo, una cosa molesta es…

if (you're long on indentation
    && short on windows) 
            then your code will
                end up squished
                     against th
                         e side
                             li
                              k
                              e

                              t
                              h
                              i
                              s

Si haces scroll puedes encontrar las referencias de otros usuarios, tú aún puedes mostrar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *