21xrx.com
2024-11-22 11:32:26 Friday
登录
文章检索 我的文章 写文章
C++实现回文串判断
2023-06-23 22:54:51 深夜i     --     --
C++ 回文串 判断

回文串是指一个字符串从左到右和从右到左读都相同。在计算机中,如何判断一个字符串是否是回文串呢?下面我们就来介绍一种用C++实现回文串判断的方法。

首先,我们需要了解一个字符数组的基本操作,即如何获取数组长度。C++中可以通过标准模板库中的`#include `来使用`strlen()`函数获取一个字符串的长度。这个函数的原型为`size_t strlen ( const char * str );`,其中`str`参数是要获取长度的字符串,`size_t`是一个无符号的整数类型,可以存储一个数组的长度。

接着,我们可以用一个for循环遍历字符串的前一半,判断是否和其对应的后一半字符相同。如果存在不同的字符,说明这不是一个回文串,直接返回`false`。如果循环结束后都没有不同的字符,说明这是一个回文串,返回`true`。

下面是具体的代码实现:


#include <iostream>

#include <cstring>

using namespace std;

bool isPalindrome(const char str[])

{

  int len = strlen(str);

  for (int i = 0; i < len / 2; i++) {

    if (str[i] != str[len - 1 - i])

      return false;

    

  }

  return true;

}

int main()

{

  char str[] = "abcdcba";

  if (isPalindrome(str))

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

   else

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

  

  return 0;

}

在上面的代码中,我们首先定义了一个`isPalindrome()`函数来判断字符串是否是回文串。这个函数接收一个字符数组作为参数。我们用`strlen()`函数获取这个数组的长度,然后用for循环遍历这个数组的前一半,判断是否和其对应的后一半字符相同。如果存在不同的字符,说明这不是一个回文串,直接返回`false`。如果循环结束后都没有不同的字符,说明这是一个回文串,返回`true`。

在`main()`函数中,我们声明了一个长度为7的数组`str`,并把`abcdcba`赋给它。我们调用`isPalindrome()`函数来判断这个字符串是否是回文串,如果是,输出`This is a palindrome string.`,否则输出`This is not a palindrome string.`。

总的来说,用C++实现回文串判断可以说是很简单的。只需要用一个for循环遍历前一半字符和后一半字符对应判断是否相同即可。如果你想深入了解C++中字符数组和字符串的操作,可以查阅相关文档资料。

  
  

评论区

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