K_blueprint
#15. 입력된 성과 이름을 출력하고 성과 이름의 글자 수를 조건에 맞게 출력하라. 본문
728x90
반응형
< 문제 내용 >
● 먼저 이름을 요청하고, 이어서 다시 성을 요청한다. 이후 입력된 성과 이름을 한 라인에 출력하고 그다음 라인에는 성과 이름을 구성하는 글자 수를 아래와 같이 성과 이름의 끝 자리에 맞추어 출력하라.
Melissa Honeybee
7 8
이후에는, 아래와 같이 같은 정보를 출력하되 글자 수를 성과 이름의 첫 글자에 맞추어 출력하라.
Melissa Honeybee
7 8
< 입력 조건 >
● 첫째 줄에는 성과 이름을 나타내는 두 개의 문자열이 빈칸을 하나 사이에 두고 주어진다. (단, 각 문자열의 길이는 30을 넘지 않는다.)
< 출력 조건 >
● 각 줄의 첫 글자와 마지막 글자로 '*'을 출력한다.
< 풀이 코드 >
#include <stdio.h>
#include <string.h> // 헤더함수 추가
int main()
{
char first_name[50], last_name[50]; // 문자열을 사용하기 위해 배열 사용
// 이름과 성 입력 받기
scanf("%s", first_name);
scanf("%s", last_name);
// 이름과 성 출력
printf("*%s %s*\n", first_name, last_name);
// 성과 이름의 글자 수를 끝자리에 맞춰서 출력
printf("*%*d %*d*\n", (int)strlen(first_name), strlen(first_name),(int)strlen(last_name), strlen(last_name));
// 이름과 성 출력
printf("*%s %s*\n", first_name, last_name);
// 성과 이름의 글자 수를 첫 자리에 맞춰서 출력
printf("*%-*d %-*d*\n", (int)strlen(first_name), strlen(first_name), (int)strlen(last_name), strlen(last_name));
return 0;
}
< 출력 결과 >
< 참 고 >
- string.h 헤더파일은 C형식의 문자열을 다룰 수 있는 함수들을 포함하고 있다.
- %* c의 *은 데이터를 받아들이되 무시하라는 의미이다. (즉, 해당 데이터의 길이만 남게 된다.)
- strlen 함수를 사용하여 first_name과 last_name 문자열의 길이를 계산하고, 그 값을 형식지정자 %*d를 사용하여 출력한다.
- %-*d 형식 지정자는 필드의 폭을 음수로 지정하여 왼쪽으로 정렬하도록 만들어준다.
728x90
반응형
'C > 실습 문제 모음' 카테고리의 다른 글
#17. 어느 가게의 마지막 분기의 매출액이 전체의 몇 %인지를 계산하는 프로그램을 작성하라 (0) | 2024.02.19 |
---|---|
#16. 성과 이름, 나이를 입력받고 성과 이름의 문자 수와 나이를 출력하는 프로그램을 작성하라. (0) | 2024.02.07 |
#14. 파일의 크기와 다운로드 속도를 입력받고 다운로드 시간을 계산하는 프로그램을 작성하라. (2) | 2024.01.12 |
#13. 세 꼭지점의 좌표가 주어질 때, 다각형의 면적과 둘레를 구하는 프로그램을 작성하라. (2) | 2024.01.10 |
#12. 다각형의 변의 길이를 입력받고 면적과 둘레를 구하는 프로그램을 작성하라. (0) | 2024.01.09 |