C++ STL 容器基本範例實驗測試 [01_CPP_STL_String ->純C++ 字串範例]
C++ STL 容器基本範例實驗測試 [01_CPP_STL_String ->純C++ 字串範例]
資料來源:https://www.cnblogs.com/skyfsm/p/6934246.html
http://larry850806.github.io/2016/06/06/STL1/
http://larry850806.github.io/2016/06/06/STL2/
GITHUB 完整資料: https://github.com/jash-git/Base_CPP_STL_Example
#include <iostream>
#include <cstdio>
#include <cstdlib>/* malloc, free, rand */
#include <cstring>/*strncpy .....*/
#include <string>/*c++ string class*/
using namespace std;
void Pause()
{
printf("Press Enter key to continue...");
fgetc(stdin);
}
int main()
{
//---
//C++字串範例
string s1="";//初始化字符串,空字符串
s1 = "My name is jash.liao";
cout << "s1=" << s1 << endl;
string s2 = s1; //拷贝初始化,深拷贝字符串
s2[0]='m';//修改字串內的單一字元
cout << "s2=" << s2 << endl;
string s3 = "I am Yasuo"; //直接初始化,s3存了字符串
cout << "s3=" << s3 << endl;
string s4(10, 'a'); //s4存的字符串是aaaaaaaaaa
cout << "s4=" << s4 << endl;
string s5(s4); //拷贝初始化,深拷贝字符串
cout << "s5=" << s5 << endl;
string s6("I am Ali"); //直接初始化
cout << "s6=" << s6 << endl;
string s7 = string(6, 'c'); //拷贝初始化,cccccc
cout << "s7=" << s7 << endl;
string s8 = s4 + s7;//将两个字符串合并成一个
cout << "s8 size=" << s8.size() << endl;//計算字串長度
printf("S8:%s\n",s8.c_str());//抓出C的字串指標並用C函數輸出
string str ("http://127.0.0.1:9999/888.mp4");
string str2 (".mp4");
size_t found;
found=str.find(str2);//C++字串搜尋
cout << found <<endl;
string str3=str;
cout << str3 << endl;
str3.replace(found,4,"");//C++字串取代
cout << str3 <<endl;
char *data = (char*)malloc(str3.size()+1);//純C動態配置字串記憶體
for(int i=0;i<(str3.size()+1);i++)//純C動態配置字串記憶體初始化
{
*(data+i)='\0';
}
strncpy(data,str3.c_str(),str3.size());//C++字串拷貝至C字串中
printf("data=%s\n",data);
free(data);
//---C++字串範例
Pause();
return 0;
}
用到的相關技巧:
純C++字串宣告+初始化
純C++修改字串內的單一字元
純C++字串相加
純C++計算字串長度
純C++字串搜尋
純C++字串取代
純C動態配置字串記憶體
純C動態配置字串記憶體初始化
純C++字串拷貝至純C字串中