#include<stdio.h>
#include<stdlib.h>
int main()
{
char a[3][5], i, j;
for(i=0;i<=2;i++)
{
scanf(\"%c %c %c %c %c\", &a[i][0], &a[i][1], &a[i][2], &a[i][3], &a[i][4]);
}
for(i=0;i<=2;i++)
{
for(j=0;j<=4;j++)
{
printf(\"%c \", a[i][j]+32);
}
printf(\"\\n\");
}
return 0;
}
이상하게 문자열만 만지면 항상 출력이 이상하게 나오는데 인풋은
A B C D E
F G H I J
K L M N O
요거고(다 공백은 한칸) 아웃풋은 소문자로 변환되서 포맷은 그대로 나오면 되요
근데 F자리에 *요게 나오고 한칸씩 밀리고 K자리에는 @가 나오고 또 한칸씩 밀리네요 ㅠ 그니까 m까지 밖에 안 나와요
이유가 뭘까요??
날림으로 독학한게 직접 코드 짜보니까 구멍이 숭숭 뚫린게 보이네요 ㅠ
엔터는 생각안하셨군요~`
ㄴ 엔터의 아스키코드값을 찾아보니 13이던데 출력할 때 32를 더하고 있으니까 45에 해당하는 -가 출력되어야 할 것 같은데 왜 *이나 @가 출력될까요 ㅠㅠ?
공백 : 32, 캐리지리턴 : 13, 라인피드 : 10
ㅁ_ㅁ? 일단 자고 일어나서 다시 생각해 봐야겠어요 답변 감사해요 횽들
scanf()를 쓰지 말던지 아니면 중간에 getchar()로 엔터 처리하셈.
ㄴ 그런 방법이!
버퍼를 비워야 함. 버퍼를 이해하고 싶다면 공백없이 ABCDEFGHIJKLMNOP 한번에 치고 엔터 쳐보셈.