왼쪽 패드 인쇄(스페이스 포함)
printf 사용 시 왼쪽에 공백이 있는 스트링은 어떻게 패딩합니까?
예를 들어, "Hello"를 40칸 앞에 인쇄하려고 합니다.
또한 인쇄하고 싶은 문자열은 여러 줄로 구성되어 있습니다.한 줄씩 따로 인쇄해야 하나요?
EDIT: 확실히 하기 위해 각 행 앞에 정확히 40개의 공간을 인쇄해야 합니다.
"Hello"라는 단어를 40자 폭의 열에 인쇄하고 왼쪽에 공백을 채우려면 다음을 사용하십시오.
char *ptr = "Hello";
printf("%40s\n", ptr);
그러면 35개의 공간이 생기고 "안녕하세요"라는 단어가 나옵니다.열의 너비를 알 수 있을 때는 이렇게 포맷하지만 데이터는 변경됩니다(그것도 한 가지 방법입니다).
정확히 40개의 공백이 필요한 경우 텍스트와 함께 40개의 공백을 일정하게 저장하고 인쇄합니다.여러 줄을 인쇄해야 할 경우 여러 줄을 사용하거나printf
위의 문장과 같은 문장이거나 루프로 실행되어 값을 변경합니다.ptr
매번.
이 기능을 사용하여 출력을 들여씁니다(트리 구조 인쇄 등).그indent
는 문자열 앞에 있는 공백 수입니다.
void print_with_indent(int indent, char * string)
{
printf("%*s%s", indent, "", string);
}
int space = 40;
printf("%*s", space, "Hello");
이 문장은 40자로 된 행을 예약하고 행 끝에 문자열을 인쇄합니다(총 행 길이가 40으로 일정하도록 여분의 공간을 제거합니다).다음과 같이 문자 및 정수에 대해 같은 것을 사용할 수 있습니다.
printf("%*d", space, 10);
printf("%*c", space, 'x');
매개 변수를 사용하여 공간을 결정하는 방법은 가변 개수의 공간이 필요한 경우에 유용합니다.이러한 문장은 다음과 같이 정수 리터럴과 함께 계속 작동합니다.
printf("%*d", 10, 10);
printf("%*c", 20, 'x');
printf("%*s", 30, "Hello");
이것이 미래에 나 같은 사람에게 도움이 되길 바란다.
문자열 앞에 정확히 40칸을 넣으려면 다음 작업을 수행합니다.
printf(" %s\n", myStr );
너무 지저분한 경우에는 다음 작업을 수행할 수 있습니다(단, 수동으로 40칸을 입력하는 것보다 느립니다). printf("%40s%s", "", myStr );
문자열을 열 40에 정렬하는 경우(즉, 가장 오른쪽 문자가 열 40에 오도록 최대 39개의 공백이 계속됩니다).다음 절차를 수행합니다.printf("%40s", myStr);
또, 다음의 조작에 의해서, 스트링의 「최대 40 스페이스」를 「아프터」로 할 수도 있습니다.printf("%-40s", myStr);
언급URL : https://stackoverflow.com/questions/293438/left-pad-printf-with-spaces
'programing' 카테고리의 다른 글
부엑스의 라라벨 포르티피요배열에서 문자열로 변환 오류입니다.요새화서비스 프로바이더php 행 40.무슨 일이야? (0) | 2022.08.28 |
---|---|
Java Persistence API에서 FetchType LAGY와 OVER의 차이점은 무엇입니까? (0) | 2022.08.28 |
Vuex를 사용하여 어레이 요소를 효과적으로 관리하는 방법 (0) | 2022.08.28 |
Java 어레이 리플렉션: isArray vs. instance of (0) | 2022.08.28 |
Django의 정적 파일 가져오기에는 Vue.js.vue 템플릿 내 작업이 포함됩니다. (0) | 2022.08.27 |