注册 登录
编程论坛 C++教室

问一下:其中一条语句怎么修改

woshiyexinji 发布于 2012-03-22 23:54, 477 次点击

其实我想让  ch输入为"000000"的时候(输入可能有空格在),输入结束
但是用这种方法输入ch“0000000”是与000000不等的
怎么修改
     
#include <iostream>
#include<cstring>

using namespace std;

int main()
{
    for(char ch[80];cin.getline(ch,80);)
    {

      if(ch=="000000")
      {
        cout<<"equal"<<endl;break;

      }
      strlwr(ch);
      bool op=true;
      for(int i=0;i<strlen(ch)/2;i++)
      {

          if(ch[i]=='{'  && ch[strlen(ch)-1-i]=='}')
             continue;
          if(ch[i]=='<'  && ch[strlen(ch)-1-i]=='>')
             continue;
          if(ch[i]=='('  && ch[strlen(ch)-1-i]==')')
             continue;
          if(ch[i]=='['  && ch[strlen(ch)-1-i]==']')
             continue;
          if(ch[i]=='}'  && ch[strlen(ch)-1-i]=='{')
             continue;
          if(ch[i]=='>'  && ch[strlen(ch)-1-i]=='<')
             continue;
          if(ch[i]==')'  && ch[strlen(ch)-1-i]=='(')
             continue;
          if(ch[i]==']'  && ch[strlen(ch)-1-i]=='[')
             continue;
          if(ch[i]!=ch[strlen(ch)-1-i])
          {

                  op=false;

          }

      }
      if(op==true)
         cout<<"Symmetry"<<endl;
      else
          cout<<"Not symmetry"<<endl;

    }

    return 0;
}
4 回复
#2
hellovfp2012-03-23 11:12
#include <iostream>
//#include<cstring>
#include <string>

using namespace std;

int main()
{
    string sin; //使用string字符串类
    for(;getline(cin, sin);)
    {

      if(sin=="000000") //进行比较, 取每位可以遍历,或是使用at()方法
      {
         cout<<"equal"<<endl;
         break;
      }

    }

    return 0;
}
#3
rjsp2012-03-23 12:36
if(ch=="000000")
应该用 strcmp
#4
pangding2012-03-25 08:34
string 类重载过 ==,楼主用起来可能方便点。如果楼主想用 cstring 的话,那就调 strcmp。

[ 本帖最后由 pangding 于 2012-3-25 08:35 编辑 ]
#5
键佳蕾2012-03-26 19:56
两个常字符串的比较是存储地址的比较,因此即使相同的字符串用“==”来比较也是不相等的,可以用strcmp
1