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
浙公网安备 33010602011771号