create and display a cell array that have a same length of requiremant

1 view (last 30 days)
I a writting a script that will create and display a cell array that will loop to store strings of lengths 4, 5, 6, and 7. it will ask the user for the string and also make a error-check. for example:
Enter a string of length 5: hello
Enter a string of length 6: !@#$%^
ncell{2} =
hello
Error: String has wrong length
ncell{3} =
!@#$%^
Here is my code
stringlength = cell(4,1);
n = 4;
for i = n:7
stringlength{i} = input('Enter a string of length :','s')
if length(stringlength) ~= i
disp('Enter the right one')
else
stringlength{i} = input('Enter a string of length :','s')
end
end
However, the code seems wrong because it keeps going although I put in a wrong length of strings

Accepted Answer

Guillaume
Guillaume on 17 Nov 2014
length(stringlength) is the length of the cell array, so it's 4. So your
if length(stringlength) ~= i
will always be true on the first iteration of the loop ( i = 4) and false all the others ( i=5:7).
You forgot to index in the cell array. To test the length of the string:
length(stringlength{i})
Note that there's a flaw in your program. If the user fails to enter a string of the right size, you ask him again to enter a string of the right size. The second time round, you don't check it, so any size can be entered.

More Answers (0)

Categories

Find more on Characters and Strings 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!