[c] printf를 사용하여 문자를 반복하는 방법은 무엇입니까?

printf("?", count, char)캐릭터 count시간 을 반복하는 것과 같은 것을하고 싶습니다 .

이를 수행하기위한 올바른 형식 문자열은 무엇입니까?

편집 : 예, printf()루프에서 호출 할 수 있다는 것이 분명 하지만 피하고 싶었던 것입니다.



답변

짧은 답변-예, 긴 답변 : 원하는 방식이 아닙니다.

가변 너비를 허용하는 printf 의 % * 형식을 사용할 수 있습니다 . 그리고 인쇄 할 값으로 ‘0’을 사용 하면 왼쪽이 0으로 채워진 오른쪽 정렬 텍스트와 결합 됩니다.

생성 :

내 혀가 내 뺨에 단단히 고정 된 상태에서이 작은 공포 쇼 코드를 제공합니다.

때때로 당신 은 왜 당신이 나머지 시간 동안 그렇게 열심히 노력하는지 기억하기 위해 나쁜 일을해야 합니다.


답변

다음 기술을 사용할 수 있습니다.

이것은 "====="

Visual Studio에서 나를 위해 작동하며 모든 C 컴파일러에서 작동하지 않아야 할 이유가 없습니다.


답변

0 또는 공백을 반복하도록 제한하는 경우 다음을 수행 할 수 있습니다.

공백의 경우 :

0의 경우 :


답변

C ++에서는 std :: string을 사용하여 반복되는 문자를 얻을 수 있습니다.

예를 들면 :

산출:


답변

그와 같은 일은 없다. 또는를 사용하여 루프를 작성 printf하거나 puts문자열 카운트 횟수를 새 문자열로 복사하는 함수를 작성해야합니다.


답변

printf그렇게하지 않습니다 printf. 단일 문자를 인쇄하기에는 과잉입니다.

이것이 비효율적이라고 걱정하지 마십시오. putchar()출력을 버퍼링하므로 필요한 경우가 아니면 각 문자에 대해 물리적 출력 작업을 수행하지 않습니다.


답변

alloca () 함수를 지원하는 컴파일러가 있다면 이것이 가능한 해결책입니다.

기본적으로 ‘\ 0’으로 채워진 스택에 10 바이트를 할당하고 처음 9 바이트는 ‘x’로 채워집니다.

C99 컴파일러가있는 경우 다음은 더 깔끔한 솔루션 일 수 있습니다.