delete an element in char array without deleting the duplicated elements before it

if I have a char array ex: 'drinking tea' and I padded this string with 'ab' till its size becomes 16 but now when I want to delete the padded characters the 'a' at the end also deleted how can I delete the padded elements without affecting the original string

Respuestas (2)

One approach:
str = 'drinking tea';
stra = [str 'ab' 'ab'];
idx = strfind(stra, 'ab');
recovered_str = stra(1:idx(1)-1)

5 comentarios

thank you, what if I added 'a' at the end i.e (drinkingteaababa) who can I delete these padded characters?
When I ran this code:
str = 'drinking tea';
stra = [str 'ab' 'ab' 'a'];
idx = strfind(stra, 'ab');
recovered_str = stra(1:idx(1)-1)
my code still worked correctly.
this is the error message that I received
'Attempted to access idx(1); index out of bounds because numel(idx)=0.'
I'm using a larger array with a variable size and the padding will be different depending on the size of my array, the issue is that if the last char will be padded is 'a' it will not be recognized ,is there a way to delete the 'a' at the end after deleting the 'ab'? but if a string end up with 'a' it will also be deleted
I am simply addressing the Question you posed. I cannot guarantee that my code is robust to all problems.
I will delete my Answer in a few hours.
thank you for your replies, and if you like don't delete the answer, it's working fine, but not for my problem, greetings.

Iniciar sesión para comentar.

No, this is not possible to do without information about the intended size of each of the strings. As long as you pad with a pattern that is also valid potential input, you are going to run into problems if the valid input happens to end with that pattern. If you pad with 'ab' pairs then run into problems with (for example) 'nice grab' .
To get around this you either need to keep track of the length of each string, or you need to pad with something that is defined as not being valid input. For example you might be able to get away with padding with char(65535)

1 comentario

yes I'm having issues I think I'm going to pad with special characters like '?' or '#' it's the only way like you said padding with 'ab' will cause a lot of problems, thank you

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 11 de Nov. de 2017

Comentada:

el 11 de Nov. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by