이 프로그램에서 무엇을해야합니까? 나는 이해할 수 없다.
질문은 다음과 같습니다. 입력란의 탭을 적절한 탭 번호 인 공백으로 대체하여 다음 탭 정지 지점으로 바꿀 수있는 프로그램 detab을 작성하십시오. 고정 된 탭 정지 세트, 즉 모든 n 개의 열을 가정하십시오. 변수 또는 기호 매개 변수 여야합니까?
탭 ('\ t')을 공백 ('')으로 바꾸기 시작했습니다. 하지만 이것은 잘못된 접근이라고 생각합니다. 제안 하시겠습니까?
및 btw n은 어떻게해야합니까? 변수 또는 기호 매개 변수? 지금까지K & R 연습 1-20 The Programming Language 2nd Edition
코드 : 내가 의미를 이해할 수 없었다이 연습을 위해 게시 된 모든 질문에
#include<stdio.h>
#define TAB 5
int main() {
int i, c;
while((c = getchar()) != EOF) {
if(c == '\t') {
for(i = 0; i < TAB; ++i)
putchar(' ');
} else
putchar(c);
}
return 0;
}
.
이 내 마지막 코드, 그것은 어떤 문제/버그가 있다면 말씀 해주십시오. 나는 그것이 작동해야한다고 생각합니다.
@ Nit, @ Chrono Kitsune, @ dasblinkenlight 및 기타 도움을 주신 모든 분들께 감사드립니다. 오히려 각 탭에 대한 공간의 고정 된 수를 삽입하는 것보다, 당신이 인쇄 된 양에 따라 공간의 다른 번호를 삽입해야합니다
#include<stdio.h>
#define TAB 8
int main() {
int c, count = 0, space = 0;
while((c = getchar()) != EOF) {
if(c == '\t') {
space = (TAB - (count % TAB));
while(space > 0){
putchar(' ');
count++;
space--;
}
}
else{
putchar(c);
++count;
}
if(c == '\n')
count = 0;
}
return 0;
}
+1 K & R 학습. – Nit
하지만 문제가 무엇입니까? 이 접근법에 대해 잘못된 점은 무엇입니까? – ChiefTwoPencils
힌트 : 문자 수를 센다. –