21xrx.com
2024-09-20 06:03:10 Friday
登录
文章检索 我的文章 写文章
使用指针在C++中判断字符串是否为回文
2023-07-13 04:54:36 深夜i     --     --
指针 C++ 字符串 回文 判断

在C++中,指针是一个非常有用的工具,可以帮助我们快速地判断一个字符串是否为回文。回文是指正序和倒序读起来都一样的字符串,比如"level"和"racecar"。

要判断一个字符串是否为回文,我们可以使用两个指针,一个指向字符串的开头,另一个指向字符串的结尾。然后,我们依次比较两个指针所指向的字符是否相等,如果都相等,则继续比较下一个字符,直到两个指针相遇。

如果两个指针都比较过了字符串的所有字符,且都相等,那么这个字符串就是回文。以下是一个实现该算法的示例代码:


#include <iostream>

#include <cstring>

using namespace std;

bool isPalindrome(const char* str)

{

  int n = strlen(str);

  const char* start = str;

  const char* end = str + n - 1;

  while (start < end) {

    if (*start != *end)

      return false;

    

    start++;

    end--;

  }

  return true;

}

int main()

{

  const char* str1 = "level";

  const char* str2 = "hello";

  if (isPalindrome(str1))

    cout << str1 << " is palindrome" << endl;

   else

    cout << str1 << " is not palindrome" << endl;

  

  if (isPalindrome(str2))

    cout << str2 << " is palindrome" << endl;

   else

    cout << str2 << " is not palindrome" << endl;

  

  return 0;

}

在上面的代码中,isPalindrome函数使用了两个指针start和end来遍历字符串,并比较它们所指向的字符是否相等。如果有任何一个字符不相等,就可以确定字符串不是回文。最终,如果所有的字符都相等,那么字符串就是回文。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复