您的位置:首页 > 科技 > IT业 > 网站模板是指网站内容的总体结构和页面格式总体规划_网站设计的企业_品牌运营策略有哪些_磁力狗在线搜索

网站模板是指网站内容的总体结构和页面格式总体规划_网站设计的企业_品牌运营策略有哪些_磁力狗在线搜索

2025/9/12 17:14:07 来源:https://blog.csdn.net/2401_84320036/article/details/147096232  浏览:    关键词:网站模板是指网站内容的总体结构和页面格式总体规划_网站设计的企业_品牌运营策略有哪些_磁力狗在线搜索
网站模板是指网站内容的总体结构和页面格式总体规划_网站设计的企业_品牌运营策略有哪些_磁力狗在线搜索

string类

  • 1.为什么要学string?
  • 2.标准库类型的string类
    • 2.1 string类的构造
    • 2.2string类的析构
    • 2.3读写string类
    • 2.4string类的赋值重载
    • 2.5string的遍历

1.为什么要学string?

在C语言中字符出串是以‘/0’结尾的一些字符的结合,为了操作方便,C标准库中提供了一些str类库函数,但是这些库函数与字符串时分隔开的,不符合OOP(面向对象编程)的思想,并且底层空间需要用户自己管理,可能会越界访问。

2.标准库类型的string类

标准库类型string表示可变长的字符序列,使用string类型必须包含string头文件。作为标准库的一部分,string定义在命名空间std中。

#include<string>
using namespace std;

2.1 string类的构造

  • string类的构造

在这里插入图片描述
string常见的构造

#include<iostream>
#include<string>
using namespace std;
//class string
//{
//	char* _str;
//	size_t _size;
//	size_t _capaicty;
//};//底层实现
int main()
{string s1;                  //无参的构造string s2("hello wrold");   //带参的构造string s3 = "hello world";  //带参的构造string s4(s3);              //拷贝构造string s5(10, '#');         //多个字符构造return 0;
}

2.2string类的析构

在这里插入图片描述
string类的析构出了作用域自动调用,把string内的资源进行释放。

2.3读写string类

#include<iostream>
#include<string>
using namespace std;int main()
{string s;           //空字符串cin >> s;           //将string对象读入scout << s << endl;  //输出sreturn 0;
}

2.4string类的赋值重载

在这里插入图片描述

#include <iostream>
#include <string>int main()
{std::string str1, str2, str3;str1 = "Test string: ";   // c-stringstr2 = 'x';               // single characterstr3 = str1 + str2;       // stringstd::cout << str3 << '\n';return 0;
}

2.5string的遍历

在这里插入图片描述

#include<iostream>
#include<string>
#include<vector>
#include<list>
using namespace std;
void test_string()
{string s1("hello world");s1[0]++;cout << s1 << endl;s1[0] = 'x';cout << s1 << endl;// 遍历1// 下标+[]for (size_t i = 0; i < s1.size(); i++){s1[i]++;}cout << s1 << endl;for (size_t i = 0; i < s1.size(); i++){cout << s1[i] << " ";}cout << endl;cout << s1.size() << endl;//遍历2//迭代器string::iterator it = s1.begin();while (it != s1.end()){(*it)--;++it;}cout << endl;it = s1.begin();while (it != s1.end()){cout << *it << " ";++it;}cout << endl;}
void test_string2()
{string s("hello world");vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);list<int> lt;lt.push_back(10);lt.push_back(20);lt.push_back(30);lt.push_back(40);reverse(s.begin(), s.end());reverse(v.begin(), v.end());reverse(lt.begin(), lt.end());for (auto& e : s){e--;}//for (auto e : s)for (char e : s){cout << e << " ";}cout << endl;char x = 'a';// for (auto x : v)for (int x : v){cout << x << " ";}cout << endl;for (auto e : lt){cout << e << " ";}cout << endl;}int main() 
{return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com