我正在尝试使用以下方法连接两个字符串:
str=strcat('Hello World ',char(hi));
其中hi
是1x1 cell
,其字符串为'hi'
。
但
str
显示为Hello Worldhi
。
为什么我在之后错过了“
Hello World
”?
答案 0 :(得分:4)
对于字符数组输入,
strcat
删除尾随的ASCII空格 字符:空格,制表符,垂直制表符,换行符,回车符和 形式喂。在连接字符时保留尾随空格 数组,使用水平数组连接,[s1, s2, ..., sN]
。对于单元格数组输入,
strcat
不会删除尾随空格。
所以:要么使用单元格字符串(将生成包含字符串的单元格)
hi = {'hi'};
str = strcat({'Hello World '},hi)
或普通的,基于括号的连接(将产生一个字符串):
str = ['Hello World ',char(hi)]
答案 1 :(得分:0)
'我不完全确定为什么会发生这种情况,除了上一篇关于文档的回答中提到的内容,但以下代码应该可以解决您的问题。
%create two cells with the strings you wish to concatenate
A = cell({'Hello World '});
B = cell({'hi'});
%concatenate the strings to form a single cell with the full string you
%want. and then optionally convert it to char in order to have the string
%directly as a variable.
str = char(strcat(A,B));