企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# :-: **String** 首先看看我们C语言一般怎么使用字符串的 ~~~ char* s1 = "Hello SYSU!"; //创建指针指向字符串常量,这段字符串我们是不能修改的 //想要创建 可以修改的字符串,我们可以使用数组分配空间 char s2[20] = "Hello SYSU!"; //或者这样 char s3[] = "Hello SYSU!"; //当然我们也可以动态分配内存 char* s4 = (char*)malloc(20); gets(s4); ~~~ C++ 标准库中的string表示可变长的字符串,它在头文件string里面。 ~~~ #include <string> ~~~ 用string初始化字符串分两类:用“=”号就是拷贝初始化,否则就是直接初始化。 ![](https://box.kancloud.cn/5cf255c8527764c12716925c4be8e5c9_623x177.png) ~~~ string s1;//初始化字符串,空字符串 string s2 = s1; //拷贝初始化,深拷贝字符串 string s3 = "I am Yasuo"; //直接初始化,s3存了字符串 string s4(10, 'a'); //s4存的字符串是aaaaaaaaaa string s5(s4); //拷贝初始化,深拷贝字符串 string s6("I am Ali"); //直接初始化 string s7 = string(6, 'c'); //拷贝初始化,cccccc ~~~ ![](https://box.kancloud.cn/c3c1effdd1a4adf50bca9a14de1080ea_621x291.png) ~~~ #include <iostream> #include <string> using namespace std; int main() { string s1;//初始化字符串,空字符串 string s2 = s1; //拷贝初始化,深拷贝字符串 string s3 = "I am Yasuo"; //直接初始化,s3存了字符串 string s4(10, 'a'); //s4存的字符串是aaaaaaaaaa string s5(s4); //拷贝初始化,深拷贝字符串 string s6("I am Ali"); //直接初始化 string s7 = string(6, 'c'); //拷贝初始化,cccccc //string的各种操作 string s8 = s3 + s6;//将两个字符串合并成一个 s3 = s6;//用一个字符串来替代另一个字符串的对用元素 cin >> s1; cout << s1 << endl; cout << s2 << endl; cout << s3 << endl; cout << s4 << endl; cout << s5 << endl; cout << s6 << endl; cout << s7 << endl; cout << s8 << endl; cout << "s7 size = " << s7.size() << endl; //字符串长度,不包括结束符 cout << (s2.empty() ? "This string is empty" : "This string is not empty") << endl;; system("pause"); return 0; } ~~~ ![](https://box.kancloud.cn/5d58b7a639f2c703338d5acee092db92_534x243.png)