【问题标题】:c++ character comparison between a number char and a letter charc ++数字char和字母char之间的字符比较
【发布时间】:2013-04-25 08:59:26
【问题描述】:

我有一个名为 tablolar 的字符串变量,在这种情况下,它的值是“tablo2”,根据我的意图,它无法进入 if 语句,但它进入了,我找不到原因。

for(int z=0;z<tablolar.size();){
    if((tablolar[z]==',')||(tablolar[z]=='a')||(tablolar[z]=='b')
     ||(tablolar[z]=='c')||(tablolar[z]=='d')||(tablolar[z]=='e')
     ||(tablolar[z]=='f')||(tablolar[z]=='g')||(tablolar[z]=='h')
     ||(tablolar[z]=='i')||(tablolar[z]=='j')||(tablolar[z]=='k')
     ||(tablolar[z]=='l')||(tablolar[z]=='m')||(tablolar[z]=='n')
     ||(tablolar[z]=='o')||(tablolar[z]=='p')||(tablolar[z]=='q')
     ||(tablolar[z]=='r')||(tablolar[z]=='s')||(tablolar[z]=='t')
     ||(tablolar[z]=='u')||(tablolar[z]=='v')||(tablolar[z]=='w')
     ||(tablolar[z]=='x')||(tablolar[z]=='y')||(tablolar[z]=='z')) {
    //enters here but it must not enter
}

【问题讨论】:

  • 应该进入。再次检查您的代码。当 tablolar[z] = 't' 时你期望什么
  • 你忘了z++吗?

标签: c++ string comparison char


【解决方案1】:

您的检查包括检查当前符号是否为't',如果字符串为'tablo2',则其第一个字符为't'

顺便说一句,这个检查可以简单得多:

if ((tablolar[z] == ',') || (tablolar[z] >= 'a' && tablolar[z] <= 'z'))
    // do your work

【讨论】:

  • 如果字符串变量 tablolar 的字符不包含任何字符但 a-z 和 ',' 之间的小写字母,我想做我的工作。你有什么建议?
  • 如果我理解正确,你应该检查字符串中的每个字符,如果它们都是','或'a'..'z',做你的工作。
  • 如果字符串 tablolar 是; “tablo”->没关系 “tablo,tablobir,tabloiki,tablouc”->没关系 “ta”->没关系,但如果是的话; “tablo2”-> 不好 “ta546465”-> 不好 “Tablo”-> 不好 “tablo,234,tablobir”-> 不好 “tablo^%&!)=(,tablouc”-> 不好跨度>
猜你喜欢
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
相关资源
最近更新 更多