A bug of build-in function Char?
2 views (last 30 days)
Show older comments
Well, I have a double array readed from a binary file, such as X=[66 43 22 0 67],
When I convert the array into string, char(X), the ans is 'B+! C'
I think that the function Char() should take [0] as the ending of a string, why it treat zero also as a part of string?
0 Comments
Accepted Answer
Jonathan Sullivan
on 20 Dec 2012
This is where MATLAB differs from C. C will assume that 0 is the end of the string. MATLAB has explicit start and end points of the array.
If you want that functionality, you'll have to do something like:
X = [66 43 22 0 67];
char(X(1:find(X == 0,1)))
0 Comments
More Answers (2)
Walter Roberson
on 21 Dec 2012
sprintf('%s', char(X))
sprintf() has an undocumented effect (some would say it is a bug) of ending at the first binary 0.
0 Comments
See Also
Categories
Find more on Get Started with MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!