본문 바로가기
C 언어

c 언어[005] scanf 문자열입출력 scanf_s("%s", a,50*sizeof(char));printf("%5.3s\n", a);

by Smart Factory in 2020 2020. 10. 3.
728x90
반응형

안녕하세요. 스마트 팩토리입니다. 

스캔에프 scanf 문자열 출력 두번째 시간으로 출력 서식에 관해서 알아보겠습니다. 

c 언어[005] scanf  문자열출력 scanf_s("%s", a,50*sizeof(char));

1. scanf 출력 서식 :printf("%.5s\n", a);

 

scanf("%s", a); 형식으로 사용하면  s는 스트링으로 문자열을 입력 받게 됩니다. 

이에 출력은 위 처럼 

prinf("%s",변수);형식으로 출력을 만들 수 있습니다. 

코드를 보고 설명하도록 하겠습니다. 


}#include<stdio.h>

void main() {

char a[50];

printf("문구를 입력하세요\n");

scanf_s("%s", a,50*sizeof(char));  ---> 문자열을 입력받음

printf("%.5s\n", a); --->%.5s는 오른쪽으로 부터 5자리만 출력  

printf("%5.3s\n", a);--->%.5.3s 는 5칸을 확보하고 오른쪽 부터 3자리만 출력함.

printf("%-5.3s\n", a);-->%-5.3s는 5칸을 확보하고 왼쪽부터 3자리를 출력.

}


printf("%s\n", a);  -> 입력 받은 문자열 모두 출력 ( 단 뛰어쓰기 하면 뛰어쓴 뒷 부분은 출력 안됨)
printf("%.5s\n", a); -> 5글자만 출력
printf("%5.3s\n", a); -> 5칸 확보 오른쪽부터 3글자만 출력
printf("%-5.3s\n", a);-> 5칸 확보, 왼쪽부터 3글자만 출력

 

 

문자열이지만 뛰어쓰기를 한 관계로  뛰어쓰기 전 까지만 문자열로 판단함

그래서 i 만 출력됨.

scanf와 출력에 관해서는 확실히 알아두고 가는 것이 필요합니다. 자주 사용하기도 하지만 코딩에서 필수요소이기 때문입니다. 자바나 파이썬에서도 비슷한 것들이 있어서 각각 의미는 같지만 표현이 달라서 저도 종종 헷갈리는 경우가 있습니다. 

c언어가 우선 기본이 된 상태에서 다른 것에 동일한 방식으로 적용되는 경우가 있어서 c 언어의 표준 입출력 서식을 기억해 두고 다른 프로그래밍 언어에서 적용된 사례를 이해하는게 무난합니다. 

저도 이리저리 왔다갔다 하다 보니 기준점이 잡히지 않아서 헷갈리다가 c 언어를 기준으로 다른 것을 보니 이해를 하기 수월했습니다.

배열이 나와서 주소값이란 표현을 사용하지 않고 무작정 하는 것처럼 보인 면도 있지만 우선 알아두면서 배열을 설명할때 다시금 설명하도록 하겠습니다. 

 

 

 

 

728x90
반응형

댓글