c语言中if语句与math,c – abs()和一个替代的简单if语句似乎不起作用

我想检查2个字符串的长度是否相差超过2.这就是我写的.

#include

#include

if (abs(str1.size() - str2.size()) >= 2)

return false;

编译错误:

1-5.cpp:8:9: error: call to 'abs' is ambiguous

if (abs(str1.size() - str2.size()) >= 2)

^~~

/Applications/Xcode.app/Contents/Develop

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/stdlib.h:129:6: note:

candidate function

int abs(int) __pure2;

^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstdlib:167:44: note:

candidate function

inline _LIBCPP_INLINE_VISIBILITY long abs( long __x) _NOEXCEPT {return labs(__x);}

^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstdlib:169:44: note:

candidate function

inline _LIBCPP_INLINE_VISIBILITY long long abs(long long __x) _NOEXCEPT {return llabs(__x);}

^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:664:1: note:

candidate function

abs(float __lcpp_x) _NOEXCEPT {return fabsf(__lcpp_x);}

^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:668:1: note:

candidate function

abs(double __lcpp_x) _NOEXCEPT {return fabs(__lcpp_x);}

^

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:672:1: note:

candidate function

abs(long double __lcpp_x) _NOEXCEPT {return fabsl(__lcpp_x);}

^

1 error generated.

无法解决问题,我将if语句更改为,

if (str1.size() - str2.size() >= 2 || str1.size() - str2.size() <= -2)

return false;

即使这种说法似乎也不正常.无论我输入什么字符串,if语句总是返回false.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值