programing

왼쪽 패드 인쇄(스페이스 포함)

bestcode 2022. 8. 28. 09:39
반응형

왼쪽 패드 인쇄(스페이스 포함)

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

반응형