Insert white spaces into char array

13,530

Solution 1

If you have indices into your vector where you want the blanks to be inserted, you could do the following:

>> str = 'ABCDEFGHJKLMNO';                %# Your string
>> index = [7 12];                        %# Indices to insert blanks
>> index = index+(0:numel(index)-1);      %# Adjust for adding of blanks
>> nFinal = numel(str)+numel(index);      %# New length of result with blanks
>> newstr = blanks(nFinal);               %# Initialize the result as blanks
>> newstr(setdiff(1:nFinal,index)) = str  %# Fill in the string characters

newstr =

ABCDEF GHJKL MNO

Solution 2

Do you want to insert spaces at specific indices?

chars = ['A','B','C','D','E','F','G','H','J','K','L','M','N','O'];
%insert space after index 6 and after index 10 in chars
charsWithWhitespace = [chars(1:6), ' ', chars(7:10), ' ', chars(11:end)];
Share:
13,530
Lukasz Madon
Author by

Lukasz Madon

I like python. Software Engineer @ rolepoint.com SOreadytohelp

Updated on June 09, 2022

Comments

  • Lukasz Madon
    Lukasz Madon almost 2 years

    I have char array(vector) of chars and I want to insert white spaces in specific order.

    For example I have

     ['A','B','C','D','E','F','G','H','J','K','L','M','N','O']
    

    and vector with indexes of white spaces

    [7 12] % white spaces should be add to 7 and 12 indexes (original string)
    

    and want to have

     ['A','B','C','D','E','F',' ','G','H','J','K', 'L', ' ','M','N','O']
    

    Is there some build-in function? I started with nested loop to itarate the array and instert ' ', but it looks ugly.