Bool Palidrome函数在Cstring中?

时间:2016-05-26 16:03:12

标签: c

我正在编写一个函数,告诉用户他们的输入是否是回文(字符串向后,因为它是向前的。我应该使用bool函数,它使用给我的cstring库,其中我填写了一段时间来执行算法。

bool checkPalindrome(char* cstr)
{
    char* front = cstr;
    char* back = cstr + strlen(cstr)-1;

    while(front < back)
    {
        // i can only change within this while loop
        if(cstr[front] != cstr[back])
        {
            return false;
        }

        front++;
        back++;
    }
    return true;
}

老实说我不知道​​我是否正确这样做,我在while循环中的if语句中出现“无效类型”错误,因为我在数组中调用指针字符,我是猜我做不到。我写了一个正确的函数,声明frontback为整数,但我应该使用这个确切的函数只改变while语句中的内容。

任何意见或建议都将不胜感激!

2 个答案:

答案 0 :(得分:1)

类型为front

backchar*。要比较它们的值,您应该取消引用指针。例如:

if (*front != *back)

注意:

要使用if (cstr[front] != cstr[back])frontback需要是整数值类型(例如intsize_t)。

答案 1 :(得分:1)

frontback是指向正确位置的指针,因此:

if (*front!=*back)

还会修改指针的移动方式:

front++; // move forwards
back--;  // move backwards