Caracteres " (comillas dobles) en C
Resuelto
mano9
Mensajes publicados
32
Estado
Miembro
-
fiddy Mensajes publicados 441 Fecha de registro Estado Colaborador Última intervención -
fiddy Mensajes publicados 441 Fecha de registro Estado Colaborador Última intervención -
Hola,
Estoy haciendo un trabajo en el que necesito asignar la comilla doble (") a una variable de tipo cadena (Es la única forma de hacer lo que quiero). Pero desde hace 2 días lo he intentado todo en vano. En realidad, esto es:
char machaine[5];
machaine = "SC CREATE " "";
Siempre hay errores, no sé cómo usar " como carácter.
Ayúdame por favor, mi proyecto es para mañana y solo me queda eso para terminarlo.
Muy cordialmente
Estoy haciendo un trabajo en el que necesito asignar la comilla doble (") a una variable de tipo cadena (Es la única forma de hacer lo que quiero). Pero desde hace 2 días lo he intentado todo en vano. En realidad, esto es:
char machaine[5];
machaine = "SC CREATE " "";
Siempre hay errores, no sé cómo usar " como carácter.
Ayúdame por favor, mi proyecto es para mañana y solo me queda eso para terminarlo.
Muy cordialmente
Configuración: Windows XP Internet Explorer 7.0
4 respuestas
-
Hola,
Tres errores en tu código.
1/ El tamaño de tu cadena es demasiado pequeño para contener "SC CREATE". (10 caracteres como mínimo, puedes poner más para estar tranquilo).
2/ machaine = "SC CREATE " ""; Está prohibido hacer eso. Debes usar la función strncpy para realizar la copia de la cadena. Por ejemplo:strncpy(machaine,"SC CREATE",sizeof machaine); machaine[sizeof machaine - 1]='\0'; //para colocar el \0 final.
3/No comillas en la cadena. O entonces hay que escapar con una barra invertida. Por ejemplo: "SC CREATE\" "
Saludos
--
Google is your friend-
Hola Fiddy, Me permito hacerte esta pequeña corrección sobre la función strncpy(): char *strncpy(char *cible, const char *source, size_t longueur) > Copia como máximo longueur caracteres de source en cible rellenando con caracteres nulos si taille cible > taille source. De lo contrario, en su caso podría simplemente usar la antigua función strcpy(). Que tengas un buen día.
-
-
Slt KéKeCest ?? .
Me permito esta pequeña corrección sobre la función strncpy() :
char *strncpy(char *cible, const char *source, size_t longueur)
> Copie au maximum longueur caractères de source dans cible en complétant par des caractères de code nul si taille cible > taille source.
No, la respuesta correcta es:
Copie au maximum longueur caractères de source dans cible en complétant par des caractères de code nul si longueur > taille source.
Bonne journée. -
-
-
-
Gracias de antemano por la respuesta.
1 Para el tamaño ya está bien, no cometí ese error
2 En mi "sc create" , justamente necesito poner la comilla doble (la penúltima) como carácter
en la cadena.
3 no quiero poner " " , sino "
POR FAVOR espero su respuesta-
1 En cuanto al tamaño está bien, no cometí ese error
Sin embargo, el ejemplo que diste contiene ese error.
2 En mi “sc create ”, justamente necesito poner la comilla doble (la penúltima) como carácter en la cadena.
Sí, ya lo entendí, y por eso te digo que hay que escaparla con un backslash, de lo contrario no funcionará. Relee mi ejemplo del post 1 para saber cómo hacerlo.
3 no quiero poner “ ”, sino más bien “
En C, la cadena está delimitada por dos apóstrofos. Pero esos apóstrofos no forman parte de la cadena en sí. Es solo para ayudar al compilador a entender de qué se trata.
--
Google is your friend
-
-
-
hola
solo quería aclarar que tu doble comilla es en realidad "double quote"
quote es "guillemets" en el idioma de Shakespeare (de ahí la cita = quotation)
el doble apareció en las aulas de enseñanza (anglófonas) de informática donde fue necesario hacer entender la diferencia (en programación) entre apostrofo y comilla haciendo hincapié en el número de apóstrofos a dibujar (single o double).
Recuerdo que el público de estas clases (todas las lenguas juntas) habitualmente no está versado en el conocimiento de la lengua ni de su formalización (de ahí el uso de vocabulario simplificado o incluso rudimentario para explicar algo así como su dificultad para formular por escrito una descripción de un funcionamiento o un problema en un lenguaje comprensible por sus pares)