基本介紹
- 中文名:字元串
- 外文名:String
- 所屬領域:計算機
- 屬性:程式語言
基本信息
特別注意
string s1,s2;s1="abc";s2=s1;s2="def";
string a="hello,world!";string b="hello,world!";string c="hello!";string a="hello,world!";string b="hello,world!";string c="hello!";
string a="hello,world!";
00000042moveax,dwordptrds:[02A62208h]00000048movdwordptr[ebp-44h],eax
string b="hello,world!";
0000004bmoveax,dwordptrds:[02A62208h]00000051movdwordptr[ebp-48h],eax
string c="hello!";
00000054moveax,dwordptrds:[02A756F8h]0000005amovdwordptr[ebp-4Ch],eax
字元類型
<!--NoahValueValueName="'NoahWeb'"-->
NoahWeb
<SetVarName="actiondesc"Value="'編輯內容'"/>
<!--NoahValueValueName="'NoahWeb'ADD'1.1'"-->
NoahWeb1.1
<SetVarName="actiondesc"Value="'編輯內容'ADD'動作'"/>
類
作用:
命名空間
程式集
語法
<SerializableAttribute>_<ComVisibleAttribute(True)>_PublicNotInheritableClassStringImplementsIComparable,ICloneable,IConvertible,IComparable(OfString),_IEnumerable(OfString),IEnumerable,IEquatable(OfString)
DiminstanceAsString
[SerializableAttribute][ComVisibleAttribute(true)]publicsealedclassString:IComparable,ICloneable,IConvertible,IComparable<string>,IEnumerable<string>,IEnumerable,IEquatable<string>
[SerializableAttribute][ComVisibleAttribute(true)]publicrefclassStringsealed:IComparable,ICloneable,IConvertible,IComparable<String^>,IEnumerable<String^>,IEnumerable,IEquatable<String^>
/**@attributeSerializableAttribute()*//**@attributeComVisibleAttribute(true)*/publicfinalclassStringimplementsIComparable,ICloneable,IConvertible,IComparable<String>,IEnumerable<String>,IEnumerable,IEquatable<String>
SerializableAttributeComVisibleAttribute(true)publicfinalclassStringimplementsIComparable,ICloneable,IConvertible,IComparable<String>,IEnumerable<String>,IEnumerable,IEquatable<String>
不適用。
C++ 中
C++ 中的 string 類
包含
#include <string>// <cstring>與<string.h>也可以using namespace std;// using std::string; using std::wstring;也可以
用法
- string類的構造函式:
- string類的字元操作:
完整特性
- string的特性描述:
int capacity()const; //返回當前容量(即string中不必增加記憶體即可存放的元素個數)int max_size()const; //返回string對象中可存放的最大字元串的長度int size()const; //返回當前字元串的大小int length()const; //返回當前字元串的長度bool empty()const; //當前字元串是否為空void resize(int len,char c);//把字元串當前大小置為len,並用字元c填充不足的部分
- string類的輸入輸出操作:
- string的賦值:
string &operator=(const string &s);//把字元串s賦給當前字元串string &assign(const char *s);//用c類型字元串s賦值string &assign(const char *s,int n);//用c字元串s開始的n個字元賦值string &assign(const string &s);//把字元串s賦給當前字元串string &assign(int n,char c);//用n個字元c賦值給當前字元串string &assign(const string &s,int start,int n);//把字元串s中從start開始的n個字元賦給當前字元string &assign(const_iterator first,const_itertor last); //把first和last疊代器之間的部分賦給字元串
- string的連線:
string &operator+=(const string &s);//把字元串s連線到當前字元串的結尾string &append(const char *s); //把c類型字元串s連線到當前字元串結尾string &append(const char *s,int n);//把c類型字元串s的前n個字元連線到當前字元串結尾string &append(const string &s); //同operator+=()string &append(const string &s,int pos,int n);//把字元串s中從pos開始的n個字元連線到當前字元串的結尾string &append(int n,char c); //在當前字元串結尾添加n個字元cstring &append(const_iterator first,const_iterator last);//把疊代器first和last之間的部分連線到當前字元串的結尾
- string的比較:
bool operator==(const string &s1,const string &s2)const;//比較兩個字元串是否相等 運算符">","<",">=","<=","!="均被重載用於字元串的比較;int compare(const string &s) const;//比較當前字元串和s的大小int compare(int pos, int n,const string &s)const;//比較當前字元串從pos開始的n個字元組成的字元串與s的大小int compare(int pos, int n,const string &s,int pos2,int n2)const;//比較當前字元串從pos開始的n個字元組成的字元串與s中//pos2開始的n2個字元組成的字元串的大小int compare(const char *s) const;int compare(int pos, int n,const char *s) const;int compare(int pos, int n,const char *s, int pos2) const;//compare函式在大於(>)時返回1,小於(<)時返回-1,等於(==)時返回0
- string的子串:
string substr(int pos = 0,int n = npos) const;//返回pos開始的n個字元組成的字元串
- string的交換:
void swap(string &s2); //交換當前字元串與s2的值
- string類的查找函式:
int find(char c, int pos = 0) const;//從pos開始查找字元c在當前字元串的位置int find(const char *s,int pos = 0) const;//從pos開始查找字元串s在當前串中的位置int find(const char *s, int pos, int n) const;//從pos開始查找字元串s中前n個字元在當前串中的位置int find(const string &s,int pos = 0) const;//從pos開始查找字元串s在當前串中的位置 //查找成功時返回所在位置,失敗返回string::npos的值int rfind(char c, int pos = npos) const;//從pos開始從後向前查找字元c在當前串中的位置int rfind(const char *s, int pos = npos) const;int rfind(const char *s, int pos, int n = npos) const;int rfind(const string &s,int pos = npos) const; //從pos開始從後向前查找字元串s中前n個字元組成的字元串在當前串中的位置,成功返回所在位置,失敗時返回string::npos的值int find_first_of(char c, int pos = 0) const;//從pos開始查找字元c第一次出現的位置int find_first_of(const char *s, int pos = 0) const;int find_first_of(const char *s, int pos, int n) const;int find_first_of(const string &s,int pos = 0) const; //從pos開始查找當前串中第一個在s的前n個字元組成的數組裡的字元的位置。查找失敗返回string::nposint find_first_not_of(char c, int pos = 0) const;int find_first_not_of(const char *s, int pos = 0) const;int find_first_not_of(const char *s, int pos,int n) const;int find_first_not_of(const string &s,int pos = 0) const; //從當前串中查找第一個不在串s中的字元出現的位置,失敗返回string::nposint find_last_of(char c, int pos = npos) const;int find_last_of(const char *s, int pos = npos) const;int find_last_of(const char *s, int pos, int n = npos) const;int find_last_of(const string &s,int pos = npos) const;int find_last_not_of(char c, int pos = npos) const;int find_last_not_of(const char *s, int pos = npos) const;int find_last_not_of(const char *s, int pos, int n) const;int find_last_not_of(const string &s,int pos = npos) const; //find_last_of和find_last_not_of與find_first_of和find_first_not_of相似,只不過是從後向前查找。
- string類的替換函式:
string &replace(int p0, int n0,const char *s);//刪除從p0開始的n0個字元,然後在p0處插入串sstring &replace(int p0, int n0,const char *s, int n);//刪除p0開始的n0個字元,然後在p0處插入字元串s的前n個字元string &replace(int p0, int n0,const string &s);//刪除從p0開始的n0個字元,然後在p0處插入串sstring &replace(int p0, int n0,const string &s, int pos, int n);//刪除p0開始的n0個字元,然後在p0處插入串s中從pos開始的n個字元string &replace(int p0, int n0,int n, char c);//刪除p0開始的n0個字元,然後在p0處插入n個字元cstring &replace(iterator first0, iterator last0,const char *s);//把[first0,last0)之間的部分替換為字元串sstring &replace(iterator first0, iterator last0,const char *s, int n);//把[first0,last0)之間的部分替換為s的前n個字元。string &replace(iterator first0, iterator last0,const string &s);//把[first0,last0)之間的部分替換為串sstring &replace(iterator first0, iterator last0,int n, char c);//把[first0,last0)之間的部分替換為n個字元cstring &replace(iterator first0, iterator last0,const_iterator first, const_iterator last);//把[first0,last0)之間的部分替換成[first,last)之間的字元串。
- string類的插入函式:
string &insert(int p0, const char *s);string &insert(int p0, const char *s, int n);string &insert(int p0,const string &s);string &insert(int p0,const string &s, int pos, int n); //前4個函式在p0位置插入字元串s中pos開始的前n個字元string &insert(int p0, int n, char c);//此函式在p0處插入n個字元citerator insert(iterator it, char c);//在it處插入字元c,返回插入後疊代器的位置void insert(iterator it, const_iterator first, const_iterator last);//在it處插入[first,last)之間的字元void insert(iterator it, int n, char c);//在it處插入n個字元c
- string類的刪除函式
iterator erase(iterator first, iterator last);//刪除[first,last)之間的所有字元,返回刪除後疊代器的位置。iterator erase(iterator it);//刪除it指向的字元,返回刪除後疊代器的位置。string &erase(int pos = 0, int n = npos);//刪除pos開始的n個字元,返回修改後的字元串。
- string類的疊代器處理:
用string::iterator或string::const_iterator聲明疊代器變數,const_iterator不允許改變疊代的內容。常用疊代器函式有:
const_iterator begin()const; iterator begin(); //返回string的起始位置const_iterator end()const; iterator end(); //返回string的最後一個字元後面的位置const_iterator rbegin()const; iterator rbegin(); //返回string的最後一個字元的位置const_iterator rend()const; iterator rend(); //返回string第一個字元位置的前面
- 字元串流處理:
通過定義ostringstream和istringstream變數實現,在#include <sstream>頭檔案中。
例如:
string input("hello,this is a test"); istringstream is(input); string s1,s2,s3,s4;is>>s1>>s2>>s3>>s4;//s1="hello,this",s2="is",s3="a",s4="test" ostringstream os; os<<s1<<s2<<s3<<s4; cout<<os.str();