21xrx.com
2025-03-20 18:33:35 Thursday
文章检索 我的文章 写文章
使用指针在C++中判断字符串是否为回文
2023-07-13 04:54:36 深夜i     29     0
指针 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来遍历字符串,并比较它们所指向的字符是否相等。如果有任何一个字符不相等,就可以确定字符串不是回文。最终,如果所有的字符都相等,那么字符串就是回文。

  
  

评论区