LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1054|回复: 3

请教如何判断数字型的字符是否相等

[复制链接]
发表于 2004-5-3 16:52:24 | 显示全部楼层 |阅读模式

  1. #include <iostream.h>

  2. void main(){
  3.         char a[7];
  4.         cin>>a;
  5.         for(int i=0;i<7;i++)
  6.                 cout<<"a["<<i<<"]="<<a[i]<<"\t";
  7.         if(a=="0000000")
  8.                 cout<<"OK!终于相等了"<<endl;
  9.         else
  10.                 cout<<"妈的,还是不等!!!"<<endl;
  11. }       
复制代码


运行到cin时,我输入000000,六个数字0,可是怎么比较的时候if()括号中的比较不相等。换为if(a=="000000\0")也不可以。

是在写了一段循环的代码,查错的时候发现不能跳出,所以才写了以上的代码来检验。。。
发表于 2004-5-3 17:33:19 | 显示全部楼层
strcmp
发表于 2004-5-3 21:25:32 | 显示全部楼层
[PHP]
#include <iostream>
#include <string>

using namespace std;

int main(){
        //char a[7];
        string a;
        cin>>a;
        for(int i=0;i<7;i++)
                cout<<"a["<<i<<"]="<<a<<"\t";
        if(a=="0000000")
                cout<<"OK!终于相等了"<<endl;
        else
                cout<<"妈的,还是不等!!!"<<endl;
}[/PHP]
发表于 2004-5-4 08:03:53 | 显示全部楼层
当然不相等啦,你在比较他们的地址嘛。一个是a的地址,一个是那个字符串恒量的地址,怎么会相等呢?唯一的方法是使用strcmp,当然,你如果要比较的是字符串所代表的数字的大小,比如输入“000”后,还是和字符串“00000”相等的,那么就可以用sscanf来把它转换成数字来比较。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表