![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C++里的if语句能否用来判断两个字符串是否相等?
#include<iostream>usingnamespacestd;classstore{public:<br>charID[20];<br>}s[50];class...
#include <iostream>
using namespace std;
class store
{public:<br>char ID[20];<br>}s[50];
class find
{public:<br>char d[20]; <br>}f[50];void main()
{int i=0,n=5;<br> cin>>s[i].ID;<br> <br> cin>>f[1].d;<br> <br> for(i=0;i<n;i++)<br> {<br> cout<<s[i].ID;<br> if ((s[i].ID) == (f[1].d) ) <br> { <br> cout<<"right"<<endl; <br> }
if ((s[i].ID) != (f[1].d) )
{
cout<<"不对!"<<endl;
}
}
} 请问这段代码 ``我想验证s[i].ID和 f[1].d 里存的字符串是否相等 可是不管我怎么输入 即使是前后一模一样,它都显示 “不对!”?
有没高手会的指点下啊? 是不是不能用 if语句判断那两个是否相等?如果不能,请问要怎么才能判断那两个是否相等? 展开
using namespace std;
class store
{public:<br>char ID[20];<br>}s[50];
class find
{public:<br>char d[20]; <br>}f[50];void main()
{int i=0,n=5;<br> cin>>s[i].ID;<br> <br> cin>>f[1].d;<br> <br> for(i=0;i<n;i++)<br> {<br> cout<<s[i].ID;<br> if ((s[i].ID) == (f[1].d) ) <br> { <br> cout<<"right"<<endl; <br> }
if ((s[i].ID) != (f[1].d) )
{
cout<<"不对!"<<endl;
}
}
} 请问这段代码 ``我想验证s[i].ID和 f[1].d 里存的字符串是否相等 可是不管我怎么输入 即使是前后一模一样,它都显示 “不对!”?
有没高手会的指点下啊? 是不是不能用 if语句判断那两个是否相等?如果不能,请问要怎么才能判断那两个是否相等? 展开
4个回答
2013-07-04
展开全部
s[i].ID == f[1].d
你这样是比较这两个字符串的地址是否相同
c风格字符串,也就是0结尾字符串的比较要借助strcmp
如果strcmp( s[i].ID, f[1].d ) == 0则说明他们两个相等
你那样做是不行的
另外可以使用标准库的string
#include <string>
std::string a = "123";
std::string b = "123";
if ( a == b ) {...} // 这里就可以直接用==来比较了,因为string重载了==,以比较两个字符串的内容是否相同
使用strcmp需要包含头文件cstring或者string.h
你这样是比较这两个字符串的地址是否相同
c风格字符串,也就是0结尾字符串的比较要借助strcmp
如果strcmp( s[i].ID, f[1].d ) == 0则说明他们两个相等
你那样做是不行的
另外可以使用标准库的string
#include <string>
std::string a = "123";
std::string b = "123";
if ( a == b ) {...} // 这里就可以直接用==来比较了,因为string重载了==,以比较两个字符串的内容是否相同
使用strcmp需要包含头文件cstring或者string.h
2013-07-04
展开全部
在C中是可以的,但是在C++中好像不行,我也不晓得,我印象中我一次C++实训中就是出现你这种情况。换种方法吧,头文件中加#include"string.h",然后在if()括号里的表达式为:strcmp(s[i].ID,f[1].d)==0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-04
展开全部
s[i].ID 置为空 应该使用 memset(s[i].ID,0,sizeof(s[i].ID));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-04
展开全部
if(strcmp(s[i].ID, f[1].d)==0) 相等else 不相等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询