- 字符:
1). 头文件:#include<ctype.h>
2). 操作:
isalnum// 是否字母和数字
isdigit//是否数字
isspace//是否空格
isupper//是否大写字母
toupper//转换为大写字母
tolower//转换为小写字母
3). 实例:
//toupper(str[i]) 输出:转换成大写字母后的ASC码;
//若前加(char) 输出:转换后对应的大写字母。
//char c2[5]="abcd"; 注意数组大小是5,因为字符串还有一个结尾符\0
—————————————————————分割线————————————————————
字符串:
1.操作:
strcpy //串拷贝
strncpy//按长度的串拷贝
strcat //字符串连接函数 串连接
strncat//按长度连接字符串
strcmp //字符串比较
+ //串联字符串
swap() //交换两个字符串的内容
begin() end() //提供类似STL的迭代器支持
rbegin() rend() //逆向迭代器
empty() //判断字符串是否为空
str.size(),str.length() //返回字符数量
+=,append(),push_back() //在尾部添加字符,其中push_back只能添加单个字符
str1.replace(pos1,str2) //替换字符
insert(index,ch) //插入字符,被插入的字符串将放在这个索引的后面,不支持传入单个字符。
1.1.比较*compair()
==,!=,<,<=,>,>=,compare() //比较字符串
string s("abcd");
s.compare("abcd"); //返回0
s.compare("dcba"); //返回一个小于0的值
s.compare("ab"); //返回大于0的值
1.2.串更改,插入,赋值 assign()
=,assign() //赋以新值
s.assign(str,1,3); //如果str是"iamangel" 就是把"ama"赋给字符串
s.assign(str,2,string::npos);//把字符串str从索引值2开始到结尾赋给s
s.assign("gaint"); //不说
s.assign("nico",5);//把’n’ ‘I’ ‘c’ ‘o’ ‘\0’赋给字符串
s.assign(5,’x’); //把五个x赋给字符串
1.3.删除 erase()
erase() //删除字符
clear() //删除全部字符 s=” ”;
如:s.erase(13);//从索引13开始往后全删除
s.erase(7,5);//从索引7开始往后删5个
1.4.子串substr()
substr() //返回某个子字符串
如: s.substr();//返回s的全部内容
s.substr(11);//从索引11往后的子串
s.substr(5,6);//从索引5开始6个字符
1.5.查找 find()
/*
find()返回符合搜索条件的字符区的第一个字符的索引,没找到目标就返回npos。第一个参数是被搜寻的对象。第二个参数(可有可无)指出string内的搜寻起点索引,第三个参数个参数(可有可无)指出搜寻的字符个数。
rfind()
find_first_of()
find_last_of()
find_first_not_of()
find_last_not_of()
需要把一个索引与npos相比:(判断字符串中是否含有某个子串)
if(str.find("jia")== string::npos)。没找到
*/
1.6.字符串转换成大写 transform
transform(str.begin(),str.end(),str.begin(),(int(*)(int))toupper);//字符串转换成大写
1.7.replace()
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str="as234j57u";
for(int i=0;i<str.length();i++)
{
if(str[i]>=48&&str[i]<=57)
{
str.replace(i,1,"");//从i位置的连续1个字符替换为没有,即删除
i--;
}
}
cout<<str;//asju
}