2017-12-11 11 views
3

TI-BASIC에서는 문자열 연결을 위해 + 작업이 오버로드됩니다 (이 경우 TI-BASIC이 나머지 세계와 조인합니다).빈 문자열을 병합하면 ERR : INVALID DIM이 발생합니다.

그러나, 빈 문자열을 포함하는 연결하는 시도는 차원 불일치 오류가 발생합니다 :

"Fizz"+"Buzz" 
     FizzBuzz 
"Fizz"+"" 
      Error 
""+"Buzz" 
      Error 
""+"" 
      Error 

왜가 발생을하고 우아한 해결 방법은? 나는 시작 공간을 사용하고 필요한 경우 (항상 잘 작동하지는 않음) 문자열을 잘라내거나 한 번에 하나씩 문자를 추가하는 루프를 사용했습니다.

+0

빈 문자열을 연결해야하는 이유는 무엇입니까? 그냥 호기심 – Meepo

+0

@Meepo 예를 들어, FizzBuzz 프로그램을 작성할 때, 각 반복을 문자열로 유지하고 현재 숫자가 3로 나눌 수 있고 "Buzz"가 5이면 "Fizz"를 추가 할 수 있습니다. 사례. 또한 프로그램에서 알 수없는 문자열을 사용하려고 할 수도 있습니다. 비어있는 경우 어떻게해야합니까? – Scrooble

+0

나는 빈 문자열을 이상한 방법으로 처리한다고 생각한다. (아마도 메모리를 절약하기 위해) 좀 더 많은 코드를 게시하면이 문제를 해결할 수있는 방법을 찾을 수있어서 기쁘다. – Meepo

답변

2

가장 좋은 방법은 수행중인 작업에 따라 다릅니다. 당신은 당신이 다른 ((PS)와 복수의 랜덤)와 연결할 필요 (이 경우, (PS)와 복수의 랜덤에) 문자열을 가지고 있고, 비어 있는지 알 수없는 경우

은, 다음이 좋은 일반적인 경우의 솔루션입니다 :

루프 전에 :

" →Str1 

루프에서 :

Str2 
If length(Str1 
Str1+Str2 

당신이 루프 필요 문자열을 할 때마다 물건을 추가 할 경우, 다음이 가장 좋은 솔루션입니다

루프 후
Str1+<stuff_that_isn't_an_empty_string>→Str1 

:

sub(Str1,2,length(Str1)-1→Str1 

이 너무 다른 상황이, 그리고 특정 상황이있는 경우에, 당신은 관련 코드의 단순화 된 버전을 게시해야한다.

희망이 도움이됩니다.