2017-12-11 6 views
3

TI-BASICでは、文字列連結のために+操作がオーバーロードされます(これ以外にTI-BASICは他の世界に加わりません)。空の文字列を連結するとERR:INVALID DIMが発生します

しかし、空の文字列を含む連結しようとすると、寸法の不一致エラー発生します

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

なぜこれが発生したが、エレガントな回避策はありますか?私は開始スペースを使い、必要に応じて文字列を切り捨て(常にうまくいくとは限りません)、または文字を一度に1つずつ追加するためにループを使用しています(遅い)。

+0

なぜ空の文字列を連結する必要がありますか?ちょうど好奇心が強い – Meepo

+0

@Meepoたとえば、FizzBu​​zzプログラムを書くときに、現在の数字が3で割り切れていれば "Fizz"を、5であれば "Buzz"を追加することができます。これは4つのうち3つケース。また、プログラムで未知の文字列を使用することもできます。空の場合はどうすればよいでしょうか? – Scrooble

+0

私は空の文字列を奇妙なやり方で扱っていると思いますので(メモリを節約するため)、コードをいくつか追加しておけば、 – Meepo

答えて

2

最善の方法は、あなたがやっていることによって異なります。

あなたは別で(STR2)を連結する必要があります(この場合は、STR1)文字列を持っている場合は、それが空であるかどうかわからない、これは良い一般的なケースのソリューションです:

Str2 
If length(Str1 
Str1+Str2 

あなたがループする必要があり、文字列にするたびにものを追加した場合、これはあなたの最高のソリューションです:

ループする前に、次のループでは

" →Str1 

Str1+<stuff_that_isn't_an_empty_string>→Str1 

は、ループ後:

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

他の状況もあり、そしてあなたが特定の状況を持っている場合は、該当するコードの簡易版を掲示する必要があります。

希望すると便利です。

関連する問題