Azzera filtri
Azzera filtri

Getting index from strsplit or strfind in a null (00) terminated string

1 visualizzazione (ultimi 30 giorni)
I have a long string with chunks of data. Each data chunk is separated/terminated by null (hex 00). Right now I use strsplit(data, '\0') to split the string, which works fine, but it returns a cell array with data, however, I rather need the functionality of strfind and get a list of indices for where the string is split.
Example of data:
data_chunk "null/0x00" data_chunk "null/0x00" data_chunk "null/0x00"
I know the first chunk is obviously at index 0, but I would also like to get the indices of the remaining chunks.
Is it possible to use strfind and search for null?
  2 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 10 Apr 2016
Post clearly your data, for example:
str='null/0x00'
Then explain what is the expected result
result=?
Simon
Simon il 10 Apr 2016
For reference, an example of the string could be
str = 'engine_thrust combustion yaw pitch roll'
where the whitespaces are char null i.e. hex value 0x00.

Accedi per commentare.

Risposta accettata

per isakson
per isakson il 10 Apr 2016
Modificato: per isakson il 10 Apr 2016
What am I missing?
>> str = [char(0),'abc',char(0),'123',char(0)];
>> find( str==char(0) )
ans =
1 5 9
>> strfind( str, char(0) )
ans =
1 5 9
>> strsplit( str, '\0')
ans =
'' 'abc' '123' ''
  4 Commenti
Simon
Simon il 11 Apr 2016
Great, nice to know, might as well keep it as clean as possible.
per isakson
per isakson il 11 Apr 2016
Modificato: per isakson il 11 Apr 2016
IMO: Explicit casting makes the code easier to read (and often faster).
>> ['B'+1, 67]
ans =
67 67
>> ['B', 67]
ans =
BC
>> ['B'+1, 'C']
ans =
CC

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by