首页 > 编程语言 >C++ string类型常用操作

C++ string类型常用操作

时间:2024-08-16 10:26:46浏览次数:15  
标签:常用 string args long C++ 字符串 时为 find

string类型操作

字符串切割

str.substr(索引,切割的个数)  ->  返回字符串

注意:第二个参数为切割的个数

string buf = "abcdefg";
buf.substr(0, 2); // 结果为 "ab"
buf.substr(1, 3); // 结果为 "bcd"

字符串输入

使用getline读入字符串可以保留字符串中的空格

 getline(cin , s1);

使用cin  在遇到空格或回车时停止

cin >> s1; 

多字符串的输入,遇到空格代表当前字符串赋值完成,转到下个字符串赋值,回车停止

cin >> s2 >> s3;

cctype头文件(判断字符类型:大/小写字母、标点、数字等)

isalnum(c)  // 当是字母或数字时为真
isalpha(c)  // 当是字母时为真
isdigit(c)  // 当是数字是为真
islower(c)  // 当是小写字母时为真
isupper(c)  // 当是大写字母时为真
isspace(c)  // 当是空白(空格、回车、换行、制表符等)时为真
isxdigit(c) // 当是16进制数字是为真
ispunct(c)  // 当是标点符号时为真(即c不是 控制字符、数字、字母、可打印空白 中的一种)
isprint(c)  // 当时可打印字符时为真(即c是空格或具有可见形式)
isgraph(c)  // 当不是空格但可打印时为真
iscntrl(c)  // 当是控制字符时为真
tolower(c)  // 若c是大写字母,转换为小写输出,否则原样输出

 

搜索操作

int index = str.find(arg)  找到arg第一次出现的位置

str.rfind()  找到arg最后一次出现的位置

如果没找到返回 -1

例如:

string buf = "abcdefg";
buf.find("cde"); // 结果为 2
buf.find("ff"); // 结果为 -1
  • 找到args中任意一个字符最早\最晚出现的位置

s.find_first_of(args)   // 在s中找到args中任意一个字符最早出现的位置

s.find_last_of(args)   // 在s中找到args中任意一个字符最晚出现的位置

例如:

string s1 = "nice to meet you~"; 
cout << s1.find_first_of("mey") << endl; // 输出结果为 3,'e' 出现的最早
  • 在 s 中查找 第一个/最后一个 不在 args 中的字符的位置


s.find_first_not_of(args)  // 查找 s 中 第一个不在 args 中的字符的位置
s.find_last_not_of(args)  // 查找 s 中 最后一个不在 args 中的字符的位置
例如:
string s1 = "nice to meet you~";  
cout << s1.find_first_not_of("nop") << endl; // 输出结果为 1 ,'i' 不在 "nop" 里

 

类型转换

  • 将任意类型转换为string类型 (val可以是任何算数类型,int、double等)

  string s = to_string(val)

  • 将string类型转换为整型(需包含cstdio头文件)

 int num1 = stoi(s, p , b) //  s表示字符串,p是指针,用来保存s中第一个非数值的下标,默认为0,也可以是空指针

                                            // b是进制数 ,将字符串作为几进制的数转换,最终结果仍然以10进制表示

                                            //(相当于任意进制转为10进制)

还有其他几种接收类型

int num = stoi(s)  // 默认10进制

long num stol(s, p, b)  //  返回long型

unsigned long num stoul(s, p, b)  //  返回unsigned long型

long long num stoll(s, p, b)  //  返回long long型

unsigned long long num stoll(s, p, b)  //  返回unsigned long long型

  • 将string类型转换为浮点数

stof(s)  stof(s,p) stod(s,p) stold(s,p) // 分别对应float、double、long double类型

  • char型转数值函数原型 int atoi(const char *_Str) 传入参数是指针类型,所以要对字符取地址

atoi(c)  // int类型

atol(c)  // long类型

atoll(c)  // long long类型

atof(c)   // float类型

 

标签:常用,string,args,long,C++,字符串,时为,find
From: https://www.cnblogs.com/1873cy/p/18362337

相关文章

  • SQL常用思维总结
    1.将复杂查询拆分为子查询子查询指的是:一个查询语句嵌套在另一个查询语句内部的查询,作为上级查询的查询条件之一--查询课程1分数比课程2分数高的学生的学生信息、课程1分数、课程2分数selectstudent.*,score1,score2fromstudentjoin(selectt1.s_id,t1.s_scorescore1,t2......
  • 小学生教你微积分,用编程理解高数(python,C,C++)
    一、代码实现微分(实际上是导数,微分不用除dx):python代码:x=0dx=0.00001deff(x):y=2*xreturnyprint((f(x+dx)-f(x))/dx)C语言代码:#include<stdio.h>doublex=1;doubledx=0.00001;doublef(doublearg){doubley=2*arg;returny;}......
  • SOMEIP_ETS_042: echoUTF16DYNAMIC_length_too_short_for_String
    测试目的:验证设备(DUT)能否正确拒绝一个长度小于实际字符串长度的echoUTF16DYNAMIC字符串。描述本测试用例旨在检查当发送的SOME/IP消息中的echoUTF16DYNAMIC字符串长度小于实际字符串长度时,DUT是否能够返回格式错误(MALFORMED_MESSAGE)的错误消息。测试拓扑:具体步骤:TEST......
  • IDEA常用快捷键
    目录按常用的功能划分行操作移动光标源码查看编辑常用操作类方法文件按快捷键组合列举所有快捷键功能Ctrl快捷键Alt快捷键Shift快捷键Ctrl+Alt快捷键Ctrl+Shift快捷键Alt+Shift快捷键其它快捷键按常用的功能划分1执行(run)Shift+F102......
  • 华为OD笔试机试 - 攀登者2 (python/c++/java 2024年C卷D卷真题算法)
    华为OD机试(C卷+D卷)2024真题目录(Java&c++&python)题目描述攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下图所示的......
  • 编程基础题:开关灯(C语言方式代码,C++方式代码,Python3方式编写)三种语言编写代码
    1.题目描述:假设有N蓋灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以......
  • java网站重建绕密常用技巧
    在进行网站分析时的一大重点就是如何登录到管理后台,这就需要我们去绕过/获取管理员的密码,在php、nodejs等站点中就很简单,我们只需要找到目标逻辑所在的代码,直接修改代码就可以实现目的。但是当我们遇到java类站点时,没有办法很轻松地修改代码,只能去分析密文的算法,从而自己生成对应......
  • 终端命令(常用版)(白话文)(自总结)<每2日续写>
    终端命令(常用版)(白话文)(自总结)看前说明:1.命令没有前后加括号【】说明需加内容的,默认只需要输入命令然后回车即可。2.中间有“【空格】”即为命令与调用参数之间的需要输入“单空格”。3.个别命令说明,解释在前,用法在后,其他默认直接输入。【直接正题】          ......
  • C++快速幂
    快速幂算法是一种用于快速计算幂运算(即 ab)的算法,其中 a 是底数,b 是指数。它的主要思想是减少乘法运算的次数,通过将指数 b 分解为二进制形式并利用幂的运算法则来加速计算过程。以下是一个使用C++实现的快速幂算法的例子,它既可以处理正整数幂的情况,也可以稍微修改以处理......
  • TypeError: add_code_sample_docstrings() got an unexpected keyword argument ‘tok
    可能是transformers的版本太高,可以考虑降版本。更推荐的解决方案:processor_class替换tokenizer_class注意:需要CTRLShiftF tokenizer_class,全部替换掉。参考链接:ALBEF(AlignbeforeFuse:VisionandLanguageRepresentationLearningwithMomentumDistillati)算法阅......