c语言字符串&c++字符串
引入头文件
#include<string>// c++标准库 STL 字符串类型
#include<string.h>// C 字符串api函数库 strlen strcpy
数组
int main(){
const int n = 100;
char stra[n] = "yhping";
char strb[n] = "hello";
char strc[n] = {};
cout << strlen(stra) << endl;
strcpy(strc, stra);
strcat(strb, stra);
strcmp(stra, strb);
}
字符串常量相比数组的存放
int main(){
const char* spa = "yhping";//字符串常量 存放在.data
const char* spb = "yhping";
char stra[] = "yhping";//数组
char strb[] = "yhping";
cout << (spa == spb) << endl; // 1
cout << (stra == strb) << endl; // 0
//比较的是首元素的地址是否相等
}
字符串常量相比数组的存储优点
int main(){
string stra = "yhping";
cout << stra.size() << endl; // strlen;
stra += "hello";
cout << stra << endl;
cout << stra.size() << endl;
//会崩溃
/*char strc[] = "yhping";
strcat(strc, "hello");*/
char strc[128] = "yhping";//多次执行容易空间溢出
strcat(strc, "hello");
}
字符串基本使用方式与函数
int main(){
string stra = "yhping";
string strb;
string strc = stra;
string strd(20, 'y');//20个y
string stre("yhping");
string strf("yhping", 2, 3);//从2下标开始取 取三个
}
字符串输出
int main(){
string stra = "yhping";
cout << stra << endl;
int n = stra.size();//元素个数
for (int i = 0; i < n; ++i){
cout << stra[i] << " ";
cout << stra.at(i) << " ";//这两种方式都可以输出
}
cout << stra.front() << endl;//输出第一个
cout << stra.back() << endl;//输出最后一个
for (auto& x : stra){ //范围for
cout << x << " ";
}
}
字符串在结构体的应用
struct Student{
string s_di; // char s_id[20];
string s_name; // char s_name[20];
string s_sex; // char s_sex[10];
int s_age;
};
int main(){
string stra = "yhping";
string strb = "hello";
string strc;
strc = stra + strb;//yhpinghello
cout << strc << endl;
strc += "newdata";
cout << strc << endl;//yhpinghellonewdata
strc = "yearmonthday";
//char s[10] = "yhping";
//s = "hello";
}