How to make an if condition where strings are involved?

2 Ansichten (letzte 30 Tage)
Hi, so this is my code,
alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
letter = input('Enter a letter: ','s');
count = 0;
while any(strcmp(alphabet,letter));
count = count + 1;
fprintf('Thanks, you enter a %s\n',letter);
letter = input('Enter a letter: ','s');
if letter~=alphabet
fprintf('%d is not a letter\n',letter)
end
end
fprintf('You entered %d letters\n',count);
I need to show that when a nonletter is entered, for example 3, the output will be 3 is not a letter.
I get this error regarding the if condition,
Enter a letter: d
Thanks, you enter a d
Enter a letter: f
Undefined operator '~=' for input arguments of type 'cell'.
Error in printloveletters (line 16)
if letter~=alphabet
What should I put as the if condition to make it work?
Thanks!

Akzeptierte Antwort

madhan ravi
madhan ravi am 5 Jul. 2020
Bearbeitet: madhan ravi am 5 Jul. 2020
if ~ismember(letter, alphabet)
fprintf('%s is not a letter\n', letter)
end

Weitere Antworten (2)

Alan Stevens
Alan Stevens am 5 Jul. 2020
Try replacing
letter~=alphabet
with
~any(strcmp(alphabet,letter))

Sumeet Singh
Sumeet Singh am 5 Jul. 2020
if ~ismember(letter,alphabet)
fprintf('%d is not a letter\n',letter)
end
You can't use operator '~=' for operands of type cell (alphabet, a cell array in your case).

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by