How to make an if condition where strings are involved?

조회 수: 2 (최근 30일)
Roxanne Esguerra
Roxanne Esguerra 2020년 7월 5일
댓글: Roxanne Esguerra 2020년 7월 5일
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!

채택된 답변

madhan ravi
madhan ravi 2020년 7월 5일
편집: madhan ravi 2020년 7월 5일
if ~ismember(letter, alphabet)
fprintf('%s is not a letter\n', letter)
end

추가 답변 (2개)

Alan Stevens
Alan Stevens 2020년 7월 5일
Try replacing
letter~=alphabet
with
~any(strcmp(alphabet,letter))

Sumeet Singh
Sumeet Singh 2020년 7월 5일
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).

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by