考研机试只用掌握C风格的字符串和C++风格的字符串
加上头文件
#include <string>
using namespace std;
C风格的字符串
用C风格的字符串进行输入和输出
C风格的字符串本质是字符数组,以'\0'作为结束的标志,'\0'也占存储空间
scanf只能读取一个单词
fgets()读取一整行,包括换行符\n
char str[100]
scanf("%s",str)
fgets(str,100,stdin)
C++风格的字符串
C风格的字符串转换为C++风格的字符串
string str1 = str
C++风格的字符串转换为C风格的字符串
str1.c_str
求字符串长度
printf("%u\n",str1.length());
//%u表示非负整数
//或者用str1.size()
访问字符串中的每一个字符
for(unsigned int i =0;i<str1.size();i++){//unsigned是无符号整数
printf("%c\n",str1[i]);
}
通过迭代器访问字符串中的每一个字
for(string::iterator it = str1.begin(); it != str1.size(); it++){
printf("%c\n",*it);//*it 指通过地址访问元素
}
操作字符串的内容
字符串连接(只针对C++字符串)
str = str + "world";
删除字符
str.erase(5);
//删除下标为5的字符
清空字符串
str.clear();
查找字符或子串
find的返回值
如果找到了,返回匹配内容的起点下标
如果未找到,返回“String::npos”
String str = "howareyou";
int pos = str.find("are");
if(pos != string::npos){
printf("Found,position = %d\n",pos);
}
else{
printf("Not Found\n");
}