本篇博客参考博客:C++ string用法和例子、C++中的string常用函数
在C++若要使用string处理字符串,则要在包含头文件string,即:
#include <string>
注意:在C++在使用的是string,在C中使用string.h
1.声明
string str1; //声明一个string对象
string str2[10]; //声明一个string对象的数组
2.初始化
使用等号的初始化叫做拷贝初始化,不使用等号的初始化叫做直接初始化
string str1; //默认初始化,一个空字符串
string str2("csdn"); //str2是字面值“csdn”的副本
string str3(str2); //str3是str2的副本
string str4(10, 'c'); //用10个'c'字符初始化str4
string str5 = str4; //将str4拷贝给str5
string str6 = "We are csdn!"; //将字符串拷贝给str6
string str7 = string(10, 'd'); //生成一个初始化好的对象,拷贝给str7
string str8(str6, 5); //将str6中从第5个字符开始的所有字符串赋给str8
string str9(str6, 5, 3); //将str6中从第5个字符开始的3个字符串赋给str9
char str10[] = "I am what I am."; //定义并初始化C字符串
string str11(str10); //将C字符串赋给str11
string str12(str10, 3); //将C字符串中的前3个字符串赋给str12
cout << str1 << "\n" << str2 << "\n" << str3 << "\n" << str4 << "\n" << str5 << "\n" << str6 << endl;
cout << str7 << "\n" << str8 << "\n" << str9 << "\n" << str10 << "\n" << str11 << "\n" << str12 << endl;
注意:若要使用C语言中printf函数打印string类字符串,则要将string类型的字符串通过.c_str()转换成C字符串,这样才可以正确输出,否则不会输出正确结果,比如:
printf("%s\n%s\n", str1.c_str(), str2.c_str());
上面初始化string类字符串的结果为: