我是这个网站的新手以及编码所以这个问题可能看似微不足道,但任何帮助都会很棒(如果可能的话,请不要只回答问题)。
我正在尝试编写一个函数,其中一个字母的字符串被转换为小写的数量(不允许循环和条件)。到目前为止我的尝试是:
function countLowerCase
string = input('Please enter a string: ');
Lowercase = 'string' > 96 & 'string' <123;
sum(Lowercase)
提前致谢。
答案 0 :(得分:3)
首先,string
和'string'
之间有什么区别?一个是变量,另一个是包含5个小写字符的常量字符串。现在为什么函数总是返回5?等等,它没有返回任何东西,因为它没有输出变量;)
除了错误之外,假设我们处理的是纯粹的7位ASCII字符,这是一种非常有效的方法,因此“小写”意味着一个连续的范围。使比较更清晰的一个有用提示是使用字符本身:
(扰流板)
Lowercase = (string >= 'a') & (string <= 'z');
更一般地说,由于Matlab对非ASCII字符的处理是locale-specific,在实际代码(而不是编程练习)中,除了让内置语言方法处理它之外,做任何事都是不可取的:< / p>
sum(string == lower(string));
或sum(isstrprop(string, 'lower'));
答案 1 :(得分:2)
你几乎拥有它:
function countLowerCase
string = input('Please enter a string: ','s'); %// add 's' to get a string
Lowercase = string > 96 & string <123; %// remove quotation marks
sum(Lowercase)