string函数的用法.doc_第1页
string函数的用法.doc_第2页
string函数的用法.doc_第3页
string函数的用法.doc_第4页
string函数的用法.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c+中的string常用函数用法basic_string:append 向string 的后面加字符或字符串。(比+=, push_back 更灵活)(1)向string 的后面加C-stringbasic_string& append( const value_type* _Ptr );string s ( Hello ); / s=”Hello ”const char *c = Out There ;s.append ( c ); / s=”Hello Out There”(2)向string 的后面加C-string 的一部分basic_string& append( const value_type* _Ptr, size_type _Count );string s ( Hello ); / s=”Hello ”const char *c = Out There ;s.append ( c , 3 ); / s=”Hello Out”(3)向string 的后面加string(有两种方法)basic_string& append( const basic_string& _Str );string s1 ( Hello ), s2 ( Wide ), s3( World );s1.append ( s2 ); / s1=”Hello Wide”s1 += s3; / s1=”Hello Wide World”(4)向string 的后面加string 的一部分 -Abasic_string& append( const basic_string& _Str, size_type _Off,size_type _Count );string s1 ( Hello ), s2 ( Wide World );s1.append ( s2 , 5 , 5 ); / s1=”Hello World”(5)向string 的后面加string 的一部分 -Btemplate basic_string& append(InputIterator _First, InputIterator _Last );string str1f ( Hello ), str2f ( Wide World );str1f.append ( str2f.begin ( ) + 5 , str2f.end ( ) );/ s1=”Hello World”(6)向string 的后面加多个字符basic_string& append( size_type _Count, value_type _Ch );string str1e ( Hello );str1e.append ( 4 , ! ); / s1=”Hello !”basic_string:assign给string 赋值。 (比“=”更灵活)(1)向string 赋C-stringbasic_string& assign( const value_type* _Ptr );string s;const char *c = Out There;s.assign ( c ); / s=”Out There”(2)向string 赋C-string 的一部分basic_string& assign( const value_type* _Ptr, size_type _Count );string s;const char *c = Out There;s.assign ( c , 3 ); / s=”Out”(3)向string 赋string(有两种方法)basic_string& assign( const basic_string& _Str );string s1 ( Hello ), s2 ( Wide ), s3( World );s1.assign ( s2 ); / s1=”Wide”s1 = s3; / s1=”World”(4)向string 赋string 的一部分 -Abasic_string& assign( const basic_string& _Str, size_type off,size_type _Count );string s1 ( Hello ), s2 ( Wide World );s1.assign ( s2 , 5 , 5 ); / s1=”World”(5)向string 赋string 的一部分 -Btemplate basic_string& assign(InputIterator _First,InputIterator _Last );string str1f ( Hello ), str2f ( Wide World );str1f.assign ( str2f.begin ( ) + 5 , str2f.end ( ) ); / str1f=”World”(6)向string 赋 多个字符basic_string& assign( size_type _Count, value_type _Ch );string str1e ( Hello );str1e.assign ( 4 , ! ); / s1=”!”basic_string:compare如果所比较的两个string 相等,则返回0; 操作string 大于参数string,返回正数;操作string 小于参数string,返回负数。(1)比较操作string 与_Str 或C-string_Ptrint compare( const basic_string& _Str ) const;int compare( const value_type* _Ptr ) const;int com = pare ( sp );(2)比较操作string 中_Pos1(下标)开始的_Num1 个字符 与 string_Str比较操作string 中_Pos1(下标)开始的_Num1 个字符 与 C-string _Ptr比较操作string 中Pos1(下标)开始的Num1 个字符 与Str 中Off(下标)开始Count 个字符int compare( size_type _Pos1, size_type _Num1, const basic_string& _Str );int compare( size_type _Pos1, size_type _Num1, const value_type* _Ptr ) const;int compare( size_type _Pos1, size_type _Num1, const basic_string& _Str,size_type _Off, size_type _Count );int com1 = pare ( 2 , 3 , sp );int com2 = pare ( 2 , 3 , c );int com3 = pare ( 1 , 3 , cs , 3 ,1 );basic_string:erase删除string 中的一个或几个元素。前两个成员函数,返回要被删除的子串的下一个元素的iterator; 第三个函数,返回删除后的string 的引用。(1)删除string 中从_First 到_Last 的字符iterator erase( iterator _First, iterator _Last );basic_string :iterator s_Iter;s_Iter = s.erase ( s.begin ( ) + 3 , s.end ( ) - 1 ); / s_Iter=s.end( )(2) 删除string 中_It 所指的字符iterator erase( iterator _It );s_Iter = s.erase ( s.begin ( ) + 5 );(3) 删除string 中从_Pos(下标)开始的_Count 个字符basic_string& erase( size_type _Pos = 0, size_type _Count = npos );str = s.erase ( 6 , 8 ); / str 也是stringbasic_string:find寻找给定的string。返回找到的第一个string 下标值;如果没找到则返回npos。(1)找一个character_Ch。(默认从头找)size_type find( value_type _Ch, size_type _Off = 0 ) const;string s ( Hello Everyone );basic_string :size_type index1, index2;static const basic_string :size_type npos = -1;index1 = s.find ( e , 3 ); / index1=8,不是6index2 = s.find ( x ); / index2=-1if (indexCh1a != npos ) cout indexCh1a endl;else cout The character e was not found in str1 . endl;(2)找一个C-string。(默认从头找)size_type find( const value_type* _Ptr, size_type _Off = 0 ) const;string s ( Let me make this perfectly clear. );basic_string :size_type index;const char *c = perfect;index = s.find ( c , 5 ); / index=17(3)找一个string。(默认从头找)size_type find( const basic_string& _Str, size_type _Off = 0 ) const;string s ( clearly this perfectly unclear. );basic_string :size_type index;string sta ( clear );index = s.find ( sta , 5 ); / index=24basic_string:max_size返回string 能放的最大元素个数。(不同于capacity)size_type max_size( ) const;basic_string :size_type cap, max;cap = s.capacity ( );max = s.max_size ( ); / max=4294967294.basic_string:rfind寻找给定的string。返回找到的第一个string 下标值;如果没找到则返回npos。与find 不同的是:rfind 默认从npos 开始找。其他相同。basic_string:replace将原string 中的元素或子串替换。返回替换后的string。(1)用string 或C-string 代替操作string 中从_Pos1 开始的_Num1 个字符basic_string& replace( size_type _Pos1,size_type _Num1, const value_type* _Ptr);basic_string& replace(size_type _Pos1,size_type _Num1,const basic_string_Str);string a,b;string s ( AAAAAAAA );string s1p ( BBB );const char* cs1p = CCC;a = s.replace ( 1 , 3 , s1p ); / s=”ABBBAAAA”b = s.replace ( 5 , 3 , cs1p ); / s=”ABBBACCC”(2)用string 中从_Pos2 开始的_Num2 个字符,代替操作string 中从_Pos1 开始的_Num1 个字符用C-string 中的_Num2 个字符,代替操作string 中从_Pos1 开始的_Num1 个字符basic_string& replace( size_type _Pos1, size_type _Num1, const basic_string& _Str,size_type _Pos2, size_type );basic_string& replace( size_type _Pos1, size_type _Num1,const value_type* _Ptr, size_type _Num2 );string a, b;string s ( AAAAAAAA );string s2p ( BBB );const char* cs2p = CCC;a = s.replace ( 1 , 3 , s2p , 1 , 2 ); / s=”ABBAAAA”b = s.replace ( 4 , 3 , cs2p , 1 ); / s=”ABBAC”(3)用_Count 个character_Ch ,代替操作string 中从_Pos1 开始的_Num1 个字符basic_string& replace( size_type _Pos1, size_type _Num1,size_type_Count, value_type_Ch );string result;string s ( AAAAAAAA );char ch = C;result = s.replace ( 1 , 3 , 4 , ch ); / s=”ACCCCAAAA”(4)用string 或C-string ,代替操作string 中从First0 到Last0 的字符basic_string&replace(iterator First0,iterator Last0, const basic_string& _Str);basic_string&replace(iterator First0,iterator _Last0, const value_type* _Ptr);string s ( AAAAAAAA ); string s4p ( BBB );const char* cs4p = CCC;basic_string:iterator IterF0, IterL0;IterF0 = s.begin ( ); IterL0 = s.begin ( ) + 3;string a, b;a = s.replace ( IterF0 , IterL0 , s4p ); / s=”BBBAAAAA”b = s.replace ( IterF0 , IterL0 , cs4p ); / s=”CCCAAAAA”(5)用string 中从_Pos2 开始的_Num2 个字符,代替操作string 中从First0 到Last0 的字符用C-string 中的_Num2 个字符,代替操作string 中从First0 到Last0 的字符basic_string& replace( iterator _First0, iterator _Last0,const value_type* _Ptr, size_type _Num2 );template basic_string& replace(iterator _First0, iterator _Last0,InputIterator _First, InputIterator _Last );IterF3 = s.begin ( ) + 1; IterL3 = s.begin ( ) + 3;IterF4 = s.begin ( ); IterL4 = s.begin ( ) + 2;a = s.replace ( IterF3 , IterL3 , IterF4 , IterL4 );b = s.replace ( IterF1 , IterL1 , cs5p , 4 );(6)用_Count 个character_Ch ,代替操作string 中从First0 到Last0 的字符basic_string& replace( iterator _First0, iterator _Last0,size_type _Count , value_type _Ch );a = s.replace ( IterF2 , IterL2 , 4 , ch );basic_string:swap交换两个string。void swap( basic_string& _Str );s1.swap ( s2 );basic_string:substr返回从_Off(下标)开始的_Count 个字符组成的stringbasic_string substr( size_type _Off = 0, size_type _Count = npos ) const;string s(I love you!), sub;sub=s.substr( ); / sub=”I love you!”sub=s.substr(1); / sub=” love you!”sub=s.substr(3,4); / sub=”ove ”string函数用法函数名称: strdup 函数原型: char *strdup(const char *s) 函数功能: 字符串拷贝,目的空间由该函数分配 函数返回: 指向拷贝后的字符串指针 参数说明: src-待拷贝的源字符串 所属文件: #include #include #include int main() char *dup_str, *string=abcde; dup_str=strdup(string); printf(%s, dup_str); free(dup_str); return 0; 函数名称: strcpy 函数原型: char* strcpy(char* str1,char* str2); 函数功能: 把str2指向的字符串拷贝到str1中去 函数返回: 返回str1,即指向str1的指针 参数说明: 所属文件: #include #include int main() char string10; char *str1=abcdefghi; strcpy(string,str1); printf(the string is:%sn,string); return 0; 函数名称: strncpy 函数原型: char *strncpy(char *dest, const char *src,int count) 函数功能: 将字符串src中的count个字符拷贝到字符串dest中去 函数返回: 指向dest的指针 参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数 所属文件: #include #include int main() char string10; char *str1=abcdefghi; strncpy(string,str1,3); string3=0; printf(%s,string); return 0; 函数名称: strcat 函数原型: char* strcat(char * str1,char * str2); 函数功能: 把字符串str2接到str1后面,str1最后的0被取消 函数返回: str1 参数说明: 所属文件: #include #include int main() char buffer80; strcpy(buffer,Hello ); strcat(buffer,world); printf(%sn,buffer); return 0; 函数名称: strncat 函数原型: char *strncat(char *dest, const char *src, size_t maxlen) 函数功能: 将字符串src中前maxlen个字符连接到dest中 函数返回: 参数说明: 所属文件: #include #include char buffer80; int main() strcpy(buffer,Hello ); strncat(buffer,world,8); printf(%sn,buffer); strncat(buffer,*,4); printf(%sn,buffer); return 0; 函数名称: strcmp 函数原型: int strcmp(char * str1,char * str2); 函数功能: 比较两个字符串str1,str2. 函数返回: str1str2,返回正数. 参数说明: 所属文件: #include #include int main() char *buf1=aaa, *buf2=bbb, *buf3=ccc; int ptr; ptr=strcmp(buf2, buf1); if(ptr0) printf(buffer 2 is greater than buffer 1n); else printf(buffer 2 is less than buffer 1n); ptr=strcmp(buf2, buf3); if(ptr0) printf(buffer 2 is greater than buffer 3n); else printf(buffer 2 is less than buffer 3n); return 0; 函数名称: strncmp 函数原型: int strncmp(char *str1,char *str2,int count) 函数功能: &n bsp; 对str1和str2中的前count个字符按字典顺序比较 函数返回: 小于0:str1str2 参数说明: str1,str2-待比较的字符串,count-比较的长度 所属文件: #include #include int main() int ptr; char *buf1=aaabbb,*buf2=bbbccc,*buf3=ccc; ptr=strncmp(buf2,buf1,3); if (ptr0) printf(buffer 2 is greater than buffer 1); else printf(buffer 2 is less than buffer 1); ptr=strncmp(buf2,buf3,3); if (ptr0) printf(buffer 2 is greater than buffer 3); else printf(buffer 2 is less than buffer 3); return(0); 函数名称: strpbrk 函数原型: char *strpbrk(const char *s1, const char *s2) 函数功能: 得到s1中第一个“同时也出现在s2中”字符的位置指针 函数返回: 位置指针 参数说明: 所属文件: #include #include int main() char *p=Find all vowels; while(p) printf(%sn,p); p=strpbrk(p+1,aeiouAEIOU); return 0; 函数名称: strcspn 函数原型: int strcspn(const char *s1, const char *s2) 函数功能: 统计s1中从头开始直到第一个“来自s2中的字符”出现的长度 函数返回: 长度 参数说明: 所属文件: #inc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论