C++之简单字符串

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";
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值