【发布时间】:2016-09-14 19:52:39
【问题描述】:
为什么只有一个参数的strcat() 无法修剪尾随空格?
我正在尝试使用 strcat() 来修剪字符数组中的尾随空格:
s = "cheese ";
s = strcat(s);
但这会返回s = "cheese ",即空白没有变化。如果我在 strcat() 中添加第二个参数,例如 s = strcat(s, ""); 现在是 s = "cheese"。
我正在这样做,而不是调用 strtrim(),因为这是 zyBooks 教科书明确要求我们为单个字符串完成此任务的方式——他们的示例显示 strcat() 以这种方式使用。我在看什么?
【问题讨论】:
-
看起来这是as staded in the reference 的预期行为。我想知道为什么使用
strtrim(s)是不好的,因为函数就是为此而设计的。 -
我不确定后者;他们根本没有提到它。至于前者,它在哪里声明单个单元格字符串的尾随空格被保留? “在连接字符串之前消除任何字符串输入的尾随空格”是否暗示?
-
strcat在 Matlab 和 Octave 中的行为不同。strcat目的是连接(不是修剪)。 -
@apraetor 在我上面发布的链接中,上面写着:“请注意,单元格字符串值不有空格修剪”。也许我在那里的英语或八度音阶词汇有问题,但我理解的文档如下:如果
strcat被赋予单元格字符串s 作为输入,它的行为将如你所料,但如果你给它单个单元格字符串,它不会修剪空格。 -
@ThomasWilmotte "cell string values" 是复数,但我理解你的意思;这是英语模棱两可的情况之一。如果这些示例包含一个单参数案例,那就更清楚了。