我的字符串比较实现对吗?

用户名
#include <iostream>
using namespace std;

bool isEqual(const char *a,const char *b)
{
    int lengthA=strlen(a);
    int lengthB=strlen(b);
    if( lengthA != lengthB)
    {
        return false;
    }
    int intLength=sizeof(int);
    int *ptrA;
    int *ptrB;
    int i=0;
    for(;i<lengthA/intLength;i++)
    {
        ptrA=(int*)(a+(i*intLength));
        ptrB=(int*)(b+(i*intLength));
        if(( (*ptrA) ^ (*ptrB) ))
        {
            return false;
        }
    }
    i=lengthA-lengthA%intLength+1;
    for(;i<lengthA;i++)
    {
        if(a[i] != b[i])
        {
            return false;
        }
    }
    return true;
}

int main()
{
    cout<<isEqual("asasa","asasa")<<endl;
    return 0;
}

我的想法不是按字符比较字符,而是将其类型转换为int(4字节比较),然后执行xor操作以测试它们是否相等。我的问题是,如果仅比较require(true,false)是正确的。

马丁·邦纳(Martin Bonner)支持莫妮卡(Monica)

这是不确定的行为。(您正在取消指向int所指向的对象不是int的指针。)

几乎可以肯定,该代码将比strcmp慢(如果指针正确对齐,则通常会执行类似的操作-可能会使循环展开几次)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实现我自己的字符串比较

来自分类Dev

我可以使用通配符比较字符串吗?

来自分类Dev

任何单行代码都可以实现“ if let”然后进行比较(例如,字符串比较)吗?

来自分类Dev

我可以简单地进行冗长的速记字符串比较吗?

来自分类Dev

我应该实现Display或ToString来将类型呈现为字符串吗?

来自分类Dev

我可以在单个通用方法中实现整数的添加和字符串的串联吗?

来自分类Dev

实现智能搜索/模糊字符串比较

来自分类Dev

比较字符串

来自分类Dev

字符串的实现

来自分类Dev

可以在if条件中比较部分字符串吗?

来自分类Dev

布尔值可以与字符串进行比较吗?

来自分类Dev

不能在android中比较包含“ /”的字符串吗?

来自分类Dev

有人可以告诉我一种比较字符串的简单方法吗

来自分类Dev

我的字符串比较在Cpp中不起作用

来自分类Dev

我正在尝试比较字符串,但无法识别

来自分类Dev

为什么我的字符串比较认为'100%'<'70%'?

来自分类Dev

我们如何计算或比较字符串?

来自分类Dev

Javascript子字符串比较;我疯了吗?

来自分类Dev

如何改进我的“字符串”对象比较功能

来自分类Dev

我如何比较 if 语句中的字符串?

来自分类Dev

PHP比较不像我期望的那样,比较以逗号开头的字符串与零作为字符串

来自分类Dev

ArrayList字符串比较

来自分类Dev

JavaScript的字符串比较

来自分类Dev

批量比较字符串

来自分类Dev

Java字符串比较

来自分类Dev

字符串与C ++的比较

来自分类Dev

比较字符串,C ++

来自分类Dev

SQL字符串与<或>的比较

来自分类Dev

统计字符串比较