21xrx.com
2024-11-25 00:19:38 Monday
登录
文章检索 我的文章 写文章
C++如何判断输入的字符串是否为回文?
2023-06-29 07:44:25 深夜i     --     --
C++ 判断 字符串 回文

回文是指顺序和倒序均相同的字符串。对于C++程序来说,判断输入的字符串是否为回文需要掌握一定的字符串处理技巧。

首先,我们需要读入一个字符串。C++中可以使用std::getline()函数读取一行字符串,并存储在一个string类型的变量中。代码如下:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string str;

  getline(cin, str);

}

接着,我们需要判断字符串是否为回文,可以使用双指针的方法进行判断。定义两个指针i和j,i指向字符串的开头,j指向字符串的结尾,分别向中间移动,判断对应字符是否相同。

具体实现代码如下:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string str;

  getline(cin, str);

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

  while (i < j) {

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

      cout << "Not a palindrome." << endl;

      return 0;

    

    i++;

    j--;

  }

  cout << "Palindrome!" << endl;

  return 0;

}

上述代码中,str[i]表示字符串中第i个字符,str.size()返回字符串的长度。当对应字符不相同时,输出"Not a palindrome.",并结束程序。当整个字符串都遍历完成时,输出"Palindrome!"表示该字符串为回文。

需要注意的是,在读取字符串后需要去除字符串结尾的换行符。可以在读取后使用以下代码进行去除:


if (str[str.size() - 1] == '\n') {

  str.erase(str.size() - 1);

}

综上所述,C++判断输入的字符串是否为回文,需要掌握string的使用和双指针的基本原理,结合上述代码可以实现判断输入字符串是否为回文的功能。

  
  

评论区

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