How to insert space between strings while doing strcat ?

849 vues (au cours des 30 derniers jours)
Student S
Student S le 31 Oct 2015
Modifié(e) : Stephen23 le 26 Avr 2021
for eg: a='hello'; b='world'; strcat(a,b);
strcat(a,b) gives 'helloworld' But I need it as 'hello world' How can I do that ?

Réponse acceptée

Star Strider
Star Strider le 31 Oct 2015
Use the square bracket [] concatenation operator, and including a space variable is the easiest way:
a='hello';
b='world';
s = ' ';
Result = [a,s,b]
Result =
hello world
  4 commentaires
Giuseppe Degan Di Dieco
Giuseppe Degan Di Dieco le 26 Avr 2021
Thank you Star, you know, the most simple things are always underestimated, but actually the most difficult to found.
Best!
Star Strider
Star Strider le 26 Avr 2021
@Giuseppe Degan Di Dieco — My pleasure!

Connectez-vous pour commenter.

Plus de réponses (4)

Hugh
Hugh le 21 Nov 2017
I like to use the ASCII space character for this situation, code "32". for the OP: strcat(a,32,b) Extension: I would be inclined to also include a comma, code "44": strcat(a,44,32,b)
I look up the characters at: http://www.asciitable.com/

Walter Roberson
Walter Roberson le 5 Mai 2018
There is a trick to strcat. Notice from the documentation,
"For character array inputs, strcat removes trailing ASCII white-space characters: space, tab, vertical tab, newline, carriage return, and form feed. For cell and string array inputs, strcat does not remove trailing white space."
This means that if you have
strcat(a, ' ', b)
then the "trailing" space of the ' ' input will be removed, which will have the effect of running the entries together. The trick is to use
strcat(a, {' '}, b)
  3 commentaires
Walter Roberson
Walter Roberson le 6 Fév 2019
a = {'hello';'bye'};
b = {'dolly';'louis'};
>> strcat(a, {' '}, b)
ans =
2×1 cell array
{'hello dolly'}
{'bye louis' }
No need to replicate the {' '}
Giuseppe Degan Di Dieco
Giuseppe Degan Di Dieco le 26 Avr 2021
Hello everybody,
all your solutions are brilliant, and lead to the same result.
Thanks for your help and time!

Connectez-vous pour commenter.


Stephen23
Stephen23 le 1 Nov 2015
Modifié(e) : Stephen23 le 26 Avr 2021
The most efficient approach is to use sprintf:
>> a = 'hello';
>> b = 'world!';
>> sprintf('%s %s',a,b)
hello world!

Larissa Bene
Larissa Bene le 5 Mai 2018
strcat(string1, " "); strcat(string1, string2);
  2 commentaires
Renwick Beattie
Renwick Beattie le 6 Fév 2019
I get the following error on the " character
Error: The input character is not valid in MATLAB
statements or expressions.
Walter Roberson
Walter Roberson le 6 Fév 2019
" is only valid in MATLAB from R2017a onwards. string() objects started existing in R2016b, but the input syntax of " was not enabled until R2017a.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by