strcat including space (i.e, ' ')
Mostrar comentarios más antiguos
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?
Respuesta aceptada
Más respuestas (4)
Paulo Silva
el 11 de Jun. de 2011
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 comentarios
Daniel Foose
el 23 de Feb. de 2018
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
el 23 de Feb. de 2018
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
el 25 de Mayo de 2023
3 votos
c=strcat(a,32,b); % the unicode value of ' ' is 32
Usman Nawaz
el 6 de Sept. de 2020
2 votos
use double quotes instead of single quotes, worked for me.
1 comentario
Walter Roberson
el 6 de Sept. de 2020
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
el 11 de Jun. de 2011
0 votos
3 comentarios
Paulo Silva
el 11 de Jun. de 2011
Please always test the answers provided before accepting them, Walter answer isn't correct (this time).
Walter Roberson
el 11 de Jun. de 2011
>> strcat({'word1'},{' '},{'word2'})
ans =
'word1 word2'
You can dereference this or cell2mat it if you want the string itself as output.
Jan
el 11 de Jun. de 2011
@Walter: CELL2MAT is not efficient here. S{1} is nicer.
Categorías
Más información sobre Characters and Strings en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!