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

求解决 char 数字 在 if 里面的如何去判断

mxstone 发布于 2014-08-27 13:20, 872 次点击
只有本站会员才能查看附件,请 登录
   输入的是2 3,2比3小,可是if后的结果怎麼是Y,如果让char的数字在if里面可以判断?

[ 本帖最后由 mxstone 于 2014-8-27 13:37 编辑 ]
8 回复
#2
i802862014-08-27 13:58
字符数组不能使用关系运算符比较大小,可使用strcmp函数,比如strcmp(num_1,num_2),当num_1<num_2时,函数值小于0;num_1=num_2时,函数值等于0;num_1>num_2时,函数值大于0
C++中,不建议使用C风格的字符串,可直接使用string类型,比如string num_1,num_2,此时这两个变量就可以使用关系运算符进行大小比较
#3
mxstone2014-08-27 17:46
回复 2 楼 i80286
#include <iostream>
#include <string>
using namespace std;
#define NUM 128
int main()
{char num[128];
 char num2[128];
 string a;
 string b;

 cin >>num;
 cin >>num2;

 a=num;
 b=num2;

 if(a>b)
     cout<<"y";
 else
     cout<<"n";
 return 0;

}

改成了这样后,可以了......
#4
embed_xuel2014-08-27 17:53
char num[128];
char num2[128];
改成下面这样试试:
char num2[128];
char num[128];
#5
mxstone2014-08-27 23:22
回复 4 楼 embed_xuel
试过了,char,我输入数字 就不能放在里面比较,它不知道为什么一直默认为1(真)。就不执行else了,完全没有判断.用String才行,,,
#6
a1902054602014-08-28 13:43
为什么不直接写输出sum或者sum2呢?那样也可以啊。你那样就只能输出Y了啊,因为你没有指明Y是等于sum的

[ 本帖最后由 a190205460 于 2014-8-28 13:44 编辑 ]
#7
richardw2014-09-09 15:43
char num[128];就相当于定义了一个整型指针num,所以它直接比较是没有意义的

要想比较字符串指针内容的大小,可以使用strcmp

如果你是想让你的输入2、3当作char来处理,你应该声明char(用int一样)变量,然后getchar()获取输入
比如
int num=getchar();
int num2=getchar();
if (num>num2)
{ ....
#8
l34562014-09-10 16:09
用strcmp最好
#9
G梦2014-09-10 16:44
实在不行就先把char型数组转换为字符串型,再利用atof()转化为float型直接进行数值的比较
1