21xrx.com
2025-03-27 03:10:42 Thursday
文章检索 我的文章 写文章
C++实现判断回文字符串数组
2023-07-04 18:26:38 深夜i     12     0
C++ 回文字符串 数组

回文字符串是指正序和倒序读都相同的字符串,如“level”和“racecar”。对于一个字符串数组,我们可以通过C++编程来判断其中每个字符串是否为回文字符串。

要判断一个字符串是否为回文字符串,我们可以使用双指针法。设两个指针i和j,分别指向字符串的首尾字符。如果这两个字符相同,则i向后移动,j向前移动,继续比较下一个字符,直到i和j相遇或者不相同。如果两个字符不同,则该字符串不是回文字符串。

在C++中,我们可以使用标准库中的string类来处理字符串。我们可以将输入的字符串用string类转化为C风格字符串(字符数组),然后使用双指针法判断是否为回文字符串。代码如下:

#include <iostream>
#include <string>
using namespace std;
bool isPalindrome(char str[]) {
  int len = strlen(str);
  int i = 0, j = len - 1;
  while (i < j) {
    if (str[i] != str[j])
      return false;
    
    i++;
    j--;
  }
  return true;
}
int main() {
  int n;
  cin >> n;
  string s;
  for (int i = 0; i < n; i++) {
    cin >> s;
    char str[100];
    strcpy(str, s.c_str());
    if (isPalindrome(str))
      cout << s << " is a palindrome" << endl;
     else
      cout << s << " is not a palindrome" << endl;
    
  }
  return 0;
}

在代码中,我们先输入字符串个数n。然后循环n次,输入每个字符串s。将s转换为字符数组str,并调用isPalindrome函数来判断是否为回文字符串。最后输出结果。

以上就是用C++实现判断回文字符串数组的方法,大家可以自己尝试并加以改进。

  
  

评论区