문제

나는 들어갔다 superuser.com에서 논쟁 쓸모없는 답변에 대해, Brainfuck의 질문에 답하기 위해 다른 포스터에 도전하는 것을 발견했습니다. 그는 나를 데려 가지 않았지만 지금은 궁금합니다.

모든 프로그램은 CRLF 라인 엔딩을 LF (DOS 스타일로 UNIX)로 변환하는 것입니다. 주변에 도움이 될 수있는 BF 코더가 있습니까?

도움이 되었습니까?

해결책

여기에 간다 :

,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.

EOF가 입력 값이 0으로 표시된다고 가정합니다 (이것은 내가 테스트했던 쇠고기의 기본값이며 합리적인 선택입니다. 또한 캐릭터를 변경하지 않은 채를지지 할 수도 있다고 생각하지만 테스트하지는 않았습니다. ). 또한 파일이 LF로 끝나는 것으로 가정합니다 (실제로는 LF로 마지막 문자를 대체합니다). CRLF 쌍의 일부가 아닌 경우 CR을 올바르게 처리합니다 (즉, 고독한 CR을 출력).

글을 쓰고 테스트하는 데 한 시간이 걸렸으며, 여기에는 처음부터 Brainfuck 학습이 포함됩니다.

다른 팁

이것은 꽤 짧고 41 자입니다.

,[[->+>+<<]>-------------[>.<[-]]>[-]<<,]

값을 [0]로 읽습니다. 읽기 값을 [1] 및 [2]로 복사하고 [1]에서 13을 빼냅니다. A [1]이 0이 아닌 경우 (CR이 아니라는 것을 의미하는 경우) [2]를 넣고 [1]을 지 웁니다. 그런 다음 A [2]를 제거하고 다시 [0]로 읽고 반복합니다.

여기에는 읽을 때마다 [0] = 0을 남겨두기 때문에 EOF를 0으로 읽거나 "변경 없음"으로 취급하는 BF 가상 머신을 지원해야한다는 이점이 추가됩니다.

이것은 CRLF 쌍을 LF로 대체하지 않고 CR을 스트립하는 것이므로 파일이 LF로 끝나는 가정에 의존하지 않습니다. DOS2UNIX (적어도 Cygwin One)에 대한 내 자신의 테스트는 고독한 CR이 유지된다는 것을 나타내지 않습니다.

약간 짧고 간단한 CR 스트라이퍼 :

,[-------------[+++++++++++++.[-]],]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top