2.20--字符串算法知识补充

这篇博客主要是补充一下之前没掌握透的字符串/数组相关知识


1.sscanf和sprintf语句

还在为输入字符串处理完后不能转成数字而烦恼吗?

sscanf!

  • 作用:将字符串s转换成数字N,等价于读入了一个整数N
  • 格式:sscanf(s,",%d",&N);
  • 还有sprintf(s,"%d",N);

2.char类型单字符输入以及数组输入

当定义了一个char数组需要输入时:

读入一段(空格为止)cin/scanf

读入一整行:gets()

读入单个字符,多次读入到目标字符为止(例如:以#结尾):getchar()

灵活使用,可读长读短,灵活自如。

3.字符串的初始化

给几个例子:

string str1;
string str2(str1);    //将str1赋值到str2 
string str3("word");  //str3初始化为word 
string str4(n,'a');  //str4初始化为n个a 

4.巩固:字符串读入

读入一段:cin>>s

读入一行:getline(cin,s)

5.字符串常用操作

s.empty() -- 空则返回true

s.size() -- 返回字符个数,相当于定义字符数组a[20]时的20

s[i] -- 第i个字符,常用

s1+s2 -- 顺序连接s1 s2返回新字符串

s1 = s2 --把s1替换成s2

s1 == s2 内容一样则返回true

s1 >= .... s2  其他比较运算符保持含义

s.insert(pos,s2) -- 在s下标为pos的元素插入s2

s.substr(pos,n) -- 返回s下标pos起的n个字符组成的一段字符串(截取)

s.erase(pos,n) --删除s下标pos起的n个字符

s.replace(pos,n,s2) 将s下标pos起的n个字符替换为s2内容

s.find(s2,pos) 在s下标pos开始,寻找s2第一次出现的位置

s.c_str s与char数组的转换

s1.compare(s2) -- 相等返回0,当s2 字典序大时返回大于0,s1字典序大时返回小于0

 

posted @ 2022-02-20 10:58  yinfelix  阅读(36)  评论(0)    收藏  举报