为什么只有一个参数的strcat()
无法修剪尾随空格?
我正在尝试使用strcat()从字符数组中修剪尾随空格:
s = "cheese ";
s = strcat(s);
但是返回s = "cheese "
,即空白没有变化。如果我向strcat()添加第二个参数,例如s = strcat(s, "");
现在s = "cheese"
。
我这样做,而不是调用strtrim(),因为这显然是zyBooks教科书希望我们为单个字符串完成此任务 - 他们的示例显示以这种方式使用strcat()。我在俯瞰什么?
答案 0 :(得分:2)
您的代码确实删除了Matlab中的尾随空格,但未删除Octave中的尾随空格。有时会发生这种情况:Octave的函数或多或少像Matlab一样,但有一些差异。有时这些差异是无意的,有时则不是。
在这种情况下,我认为您遇到的行为是Octave函数中的错误,因为它的documentation表示
在连接字符串之前,消除了任何字符串输入的尾随空格。
当有一个字符串作为输入时,它不是它正在做的事情。
答案 1 :(得分:0)
This Bug was reported on savannah和fixed on the default branch。
您可以等待包含此更改的下一个版本,或者只需下载strcat.m from the mercurial repo并在Octave安装中替换strcat.m。