-
-
Save phaya/e500f6191bc4946971de to your computer and use it in GitHub Desktop.
Un pregunta que me planteó un compañero vuestro en clase ¿por qué el siguiente código no funciona correctamente? ¿y cómo se solucionaría? La solución que se espera debería imprimir dos veces el carácter a?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
int main() | |
{ | |
char c = 'a'; | |
char s = "a"; | |
printf("%c %c", c, s); | |
return 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
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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]