【发布时间】:2013-04-25 09:42:11
【问题描述】:
如果字符串变量tablolar 的字符不包含任何字符,但a-z 和',' 之间的小写字母,我想做我的工作。你有什么建议?
如果字符串tablolar是;
"tablo"->没关系
"tablo,tablobir,tabloiki,tablouc"->没关系
"ta"->没关系
如果是的话;
“tablo2”->不行
"ta546465"->不行
“Tablo”->不行
"tablo,234,tablobir"->不行
"tablo^%&!)=(,tablouc"-> 不行
我尝试的是 wrog;
for(int z=0;z<tablolar.size();z++){
if ((tablolar[z] == ',') || (tablolar[z] >= 'a' && tablolar[z] <= 'z'))
{//do your work here}}
【问题讨论】:
-
代码中的错误是您确实为字符串中的每个有效字符工作。相反,您应该首先检查所有字符,然后仅在它们都有效时才起作用。
-
您的方法的问题在于,对于每个匹配的字符,它“[did] your work”一次,而不是记录整个字符串是否匹配,然后决定是否执行工作(一次) ....您可以根据 Detheroc 的回答将其移动到函数中,或者在发现非法字符时将布尔值设置为 false。
标签: c++ string comparison char