21xrx.com
2024-12-22 20:41:35 Sunday
登录
文章检索 我的文章 写文章
C++如何判断回文字符串
2023-07-13 18:13:14 深夜i     --     --
C++ 判断 回文 字符串

回文字符串是指正反向读出来都一样的字符串。比如“level”和“racecar”都是回文字符串。在C++中,可以使用以下方法判断一个字符串是否为回文字符串。

1. 首先,将输入的字符串转换为小写或大写字母,以便于比较时不区分大小写。

2. 使用两个指针i和j,分别指向字符串的首尾字符。比较它们所指向的字符是否相等,如果相等,i指针向后移动,j指针向前移动,继续比较下一个字符;如果不相等,则退出循环,说明该字符串不是回文字符串。

3. 需要注意的是,当字符串长度为奇数时,中间的字符只需比较一次;当字符串长度为偶数时,i和j指针重合时,表示所有字符都已比较完毕。

下面是C++代码实现:


#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

bool isPalindrome(string s) {

  transform(s.begin(), s.end(), s.begin(), ::tolower);

  int i = 0, j = s.size() - 1;

  while (i < j) {

    if (s[i] != s[j])

      return false;

    

    i++;

    j--;

  }

  return true;

}

int main() {

  string s;

  cout << "Please enter a string: ";

  getline(cin, s);

  if (isPalindrome(s))

    cout << "This is a palindrome string" << endl;

   else

    cout << "This is not a palindrome string" << endl;

  

  return 0;

}

在这段代码中,我们使用transform函数将字符串中的字母全部转换为小写。在while循环中,i和j指针分别指向字符串的首尾字符,并在每次比较后向中间移动。如果在任意对应位置上字符不相等,则返回false,表示该字符串不是回文字符串。否则,返回true,表示该字符串是回文字符串。

在运行代码时,我们可以输出判断结果。如果该字符串为回文字符串,则输出“This is a palindrome string”;否则,输出“This is not a palindrome string”。

总之,在C++中,判断一个字符串是否为回文字符串是比较简单的。只需要按照上述方法逐个比较字符串中的字符即可。

  
  

评论区

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