我有一个字符数组cA
,每个字符的每个条目都存储一个字符,例如'a'
,'('
,'['
和{{1} }。
我的程序将迭代此数组并根据每个条目的内容执行某种类型的操作。例如,
' '
对于if (cA(i) == 'a') do sth; end
,'a'
等字符,上述字符比较操作非常简单。
但是我如何处理'b'
,'('
和'['
等特殊字符(空格)
我可以写一些诸如
' '
答案 0 :(得分:2)
一般情况下,我建议使用STRCMP比较字符串,例如
if strcmp(cA(i),'('), doSomething, end
对于您的具体情况,我建议使用SWITCH/CASE声明。请注意,在Matlab中,这并不像c中那样;相反,只有“好”的情况才会被执行。根据我的经验,这有助于提高可读性。因此
for myChar = cA %# this loops over every char in the 1-by-n string
switch myChar
case 'a'
do something
case 'b'
case {'c','d'} %# this is how you handle multiple chars with the same outcome
otherwise
error('char %s not handled',myChar) %# don't forget this
end
end
答案 1 :(得分:0)
您是否尝试过并收到错误消息?因为它适合我:
c = '(';
if(c == '(')
disp('left paren')
end
按预期打印left paren
。