strcat including space (i.e, ' ')
이전 댓글 표시
I have to concatenate words, including spaces
Ex. a='word1'; b='word2';c=strcat(a,' ',b);
I need 'word1 word2', however, the value on c is 'word1word2'
Can you help me?
채택된 답변
추가 답변 (4개)
Paulo Silva
2011년 6월 11일
c=[a ' ' b]
strcat ignores trailing ASCII white space characters and omits all such characters from the output. White space characters in ASCII are space, newline, carriage return, tab, vertical tab, or form-feed characters, all of which return a true response from the MATLAB isspace function. Use the concatenation syntax [s1 s2 s3 ...] to preserve trailing spaces. strcat does not ignore inputs that are cell arrays of strings.
댓글 수: 2
Daniel Foose
2018년 2월 23일
This is better than the accepted answer because it keeps the type the same. The accepted answer returns a cell with a string in it (which is different from a string). This answer returns a string.
Walter Roberson
2018년 2월 23일
The accepted answer returns a cell with a character vector in it. Strings did not exist in R2011a. If strings were being used then you would use a different approach:
>> a = "word1"; b = "word2"; a + " " + b
ans =
"word1 word2"
This requires R2017a or later. For R2016b,
>> a = string('word1'); b = string('word2'); a + ' ' + b
and before R2016b strings did not exist.
Jy·Li
2023년 5월 25일
3 개 추천
c=strcat(a,32,b); % the unicode value of ' ' is 32
Usman Nawaz
2020년 9월 6일
2 개 추천
use double quotes instead of single quotes, worked for me.
댓글 수: 1
Walter Roberson
2020년 9월 6일
That can be useful, but the output would be a string() object instead of a character vector. string() objects can be useful, but they need slightly different handling than character vectors.
string() objects became available in R2016b; using double-quotes to indicate string objects became available in R2017a.
R P
2011년 6월 11일
0 개 추천
댓글 수: 3
Paulo Silva
2011년 6월 11일
Please always test the answers provided before accepting them, Walter answer isn't correct (this time).
Walter Roberson
2011년 6월 11일
>> strcat({'word1'},{' '},{'word2'})
ans =
'word1 word2'
You can dereference this or cell2mat it if you want the string itself as output.
Jan
2011년 6월 11일
@Walter: CELL2MAT is not efficient here. S{1} is nicer.
카테고리
도움말 센터 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!