INSERT
该程序接受两个字符串的数组,并检查第二个字符串中的字母是否出现在第一个字符串中。
示例: letterCheck([“ trances”,“ nectar”])➞正确
letterCheck([“ compadres”,“ DRAPES”])➞正确
letterCheck([“ parses”,“ parsecs”])➞false
此程序适用于以上给定的对。它对{“ parses”,“ parsecs”}返回true,但应返回false。 有人可以告诉我,代码中的问题是什么,我该怎么做才能解决此问题?
答案 0 :(得分:1)
当前的问题是您尝试对匹配的字符进行计数,以查看第二个字符串中的所有字符在第一个字符串中是否都匹配。但是,由于第一个字符串中有重复的字符,因此计算会出错:两个’s’
的存在使b
比您想要的要大。找到角色后,您可以跳出循环来避免问题。
顺便说一句,将未经检查的char
传递给tolower()
可能会给您带来不确定的行为:在大多数平台上,char
已签名,但tolower()
上有一个前提条件,要求参数为nin负数或EOF
。
此外,b < arr[1].length()
的结果为bool
(尽管需要进行反转):无需编写特殊条件即可将其转换为布尔值。