/charorstring.c Secret
#include <stdio.h> | |
int main() | |
{ | |
char c = 'a'; | |
char s = "a"; | |
printf("%c %c", c, s); | |
return 0; | |
} |
¡Muy bien! Ahora, os pido otra solución ¿cómo modificarías el código para que funcione con las siguientes restricciones: a) la inicialización de s
tiene que ser con las dobles comillas: "a"
, b) no se puede modificar %c "%c
? El resto se puede cambiar a voluntad.
Se me han ocurrido dos soluciones:
La primera, haciendo un poco de trampas, sería después de inicializar s escribir: s=c;, y sin cambiar nada más.
La segunda sería cambiar el formato de s a una cadena de caracteres y luego en el printf mostrar s[0]
¡Muy bien! Estaba pensando en la segunda solución, pero la primera que has dado también cumple con las restricciones :)
Las comillas dobles se utilizan para inicializar cadenas de caracteres, mientras que las comillas simples se reservan para caracteres. En el caso de declarar s
como una cadena (char s[] = "a"
) recordar que el tamaño que ocupa la variable es 2, ya que almacena también el \0
.
El programa no funciona debido a que en la segunda variable char(s) la a esta puesta con dobles comillas, cuando tiene que ser con solo una comilla es cada lado, como el primero.Corrigiendo eso el programa deberia funcionar sin problemas.