首页 > 编程语言 >【C++】判断回文字符串。回文指的是顺读和逆读都一样的字符串。例如,“tot”和“otto”都是简短的回文。编写一个程序,让用户输入字符串,并将字符串引用传递给一个bool函数。如果字符串是回文,该函

【C++】判断回文字符串。回文指的是顺读和逆读都一样的字符串。例如,“tot”和“otto”都是简短的回文。编写一个程序,让用户输入字符串,并将字符串引用传递给一个bool函数。如果字符串是回文,该函

时间:2024-02-20 18:44:40浏览次数:28  
标签:string ret bool str 字符串 回文 函数

//判断字符串是否是回文字符串(考虑大小写,空格和标点符号)
bool palindrome1(string& str) {
  string ret;
  for (auto& c : str) {
    if (isalpha(c)) {
      if (isupper(c)) {
        ret.push_back(tolower(c));
      }
      else {
        ret.push_back(c);
      }
    }
  }
  string target(ret.rbegin(), ret.rend());//翻转字符串
  return target == ret;
}
#include <iostream>
#include <string>
using namespace std;
int main() {
  string str;
  cout << "请输入一串字符(按'q'结束):";
  while (getline(cin, str) && str != "q") {
    if (palindrome1(str)) {
      cout << "该字符串是回文字符串!\n";
    }
    else {
      cout << "该字符串不是回文字符串!\n";
    }
  }
  return 0;
}

标签:string,ret,bool,str,字符串,回文,函数
From: https://www.cnblogs.com/smartlearn/p/18023798

相关文章

  • python中的内置函数zip函数
    关于zip()函数,有几点要讲的。首先,官方文档中,它是这样描述的:Makeaniteratorthataggregateselementsfromeachoftheiterables.Returnsaniteratoroftuples,wherethei-thtuplecontainsthei-thelementfromeachoftheargumentsequencesoriterables.The......
  • golang函数
    函数定义/*函数定义关键字funcfunc函数名(参数参数类型)函数返回值的类型*/funcgetInfo(namestring,ageint)string{ returnname}//函数返回多个返回值:则返回类型括号包裹(返回值类型,类型..),即时返回两个int,也需要(int,int)funcgetNum(xint,statusboo......
  • delphi按键值对重组字符串
    问题背景:有一组基金代码串,原逻辑按基金代码单个调整为按父子基金代码组作为条件获取查询结果解决原理:采用TStringList类哈希表操作方式重组字符串List:=TStringList.Create;List.Add('aaa=111');List.Add('bbb=222');List.Add('ccc=333');List.Add('ddd=444');ShowMessag......
  • 十六进制字符串,转化为十六进制数据并write 写出去
    如果你想使用write函数以十六进制方式发送数据,你需要将十六进制数据转换为字节,并将字节作为参数传递给write函数。下面是一个示例程序,演示如何将十六进制字符串转换为字节,并使用write函数发送数据:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<st......
  • Flink 增量窗口聚合函数 ReduceFunction(归约函数)和AggregateFunction(聚合函数)
    Flink增量窗口聚合函数定义了窗口分配器,只是知道了数据属于哪个窗口,可以将数据收集起来了;至于收集起来到底要做什么,其实还完全没有头绪。所以在窗口分配器之后,必须再接上一个定义窗口如何进行计算的操作,这就是所谓的“窗口函数”(windowfunctions)。经窗口分配器处理之后,数据可......
  • python不能跳转进入某个函数或模块的一种解决思路
    例如,下图中的get_bucket_mount_root函数可以顺利import进来,但是按ctrl键不能跳转进入这个函数: 一个解决思路是,在vscode终端中,打开python解释器,import上图中的hatbc库,然后用hatbc.__file__命令查找该库的__init__.py文件的路径,按住ctrl键,点击这个路径,即可跳转进入这个__init__.......
  • redis自学(1) 动态字符串SDS
      字符串是redis最常见的数据结构,但redis并没有直接使用C语言的字符串,是因为C语言本身其实是没有字符串的,所谓的字符串其实是字符数组(Java语言中的字符串是一个对象),所以C语言的字符串有很多问题:①获取字符串长度需要通过运算C语言的字符串数组都是以’\0’结尾,这是一个字符......
  • 关于vue3的h函数
    h(ElInput,{class:'w200ml8',placeholder:'关键字搜索',clearable:true,modelValue:formData.url_pattern,'onUpdate:modelValue':(val:string)=&......
  • C++函数用法
    1.getline函数的用法函数声明boolgetline(istream&in,string&s)功能说明从输入流读入一行到变量strings,即使是空格也可以读入。直到出现以下情况为止:读入了文件结束标志读到一个新行(有重载函数可以指定行分隔符,默认是"\n".)达到字符串的最大长度如果getline没有读......
  • 2024-02-20 随机生成30位字符串
    functiongenerateRandomString(){letspecialChars="`~!@#$%^&*-+=_|{}[]:;'<>,.?/";letlowercaseLetters='abcdefghijklmnopqrstuvwxyz';letuppercaseLetters='ABCDEFGHIJKLMNOPQRSTUVWXYZ';let......