字符串处理笔记

来源:互联网 发布:ubuntu安装到移动硬盘 编辑:程序博客网 时间:2024/05/10 14:46

类似于strlen,strcmp,strpcy就不写了。。。。。。以下都是在VC6.0下编译,可能在VS上编译错误。

append()函数:

功能:C++一个字符串连接在另一个字符串后面。

代码:

#include<iostream>#include<string>using namespace std;void main(){string a="hello ";string b="world";a.append(b,0,sizeof(b)+2);cout<<a<<endl;}


strchr()函数:

功能:C++从某一个字符串开始输出字符串。

代码:

#include<iostream.h>#include<string.h>void main(){cout<<strchr("hello world!",'e')<<endl;}
或者:

#include<iostream.h>#include<string.h>void main(){char *a="hello world!";char b='e';cout<<strchr(a,b)<<endl;}


strstr函数:

功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。

代码:

#include <stdio.h>#include <string.h>int main(){   char str1[1001],str2[1001];   while(~scanf("%s %s",str1,str2))   {     if(strstr(str1,str2)==0)   {   printf("No\n");   }       else   {   printf("Yes\n");   }   }   return 0;}

strrev函数:

功能:把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。

补充一下,strrev需要可能在OJ上面不能识别,要自己定义。

char *strrev(char *str) {         char *p1,*p2;         if (!str||!*str) {return str; }        for(p1=str,p2=str+strlen(str)-1;p2>p1;++p1,--p2){                 *p1^=*p2;                 *p2^=*p1;                 *p1^=*p2;         }         return str; }
或者:

char *strrev(char *str) {         int n=strlen(str);         char* begin=str;         char* end=str+n-1;         while (begin<end){                 char tmp=*begin;                 *begin=*end;                 *end=tmp;                 ++begin;                 --end;         }         return str; } 

#include<stdio.h>#include<string.h>int main(){char str[1001];while(~scanf("%s",str)){strrev(str);printf("%s\n",str);}return 0;}

reverse:

功能:把字符串s的所有字符的顺序颠倒过来。(C++)

#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){string str;while(cin>>str){reverse(str.begin(),str.end());cout<<str<<endl;}return 0;}        


atoi函数:

功 能: 把字符串转换成整型数,如果第一个非空格字符不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。

代码:

#include<iostream.h>#include<stdlib.h>#define maxn 1001int main(){    char str[maxn];    while(cin>>str)    {int n=atoi(str);    cout<<"n="<<n<<endl;}return 0;}

substr函数:

功能:从一个字符串复制一个从指定位置开始,并具有指定长度的子字符串。

代码:

#include <iostream> #include <string> using namespace std; int main() {     string s = "hello world!";     string str = s.substr(3,6);    cout<<str<<endl;return 0;}

find函数:

功能:查找控制字符序列中与操作字符序列匹配的第一个子串,并返回子串的起始位置;

string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。这些操作全都返回 string::size_type 类型的值,以下标形式标记查找匹配所发生的位置;或者返回一个名为 string::npos 的特殊值,说明查找没有匹配。string 类将 npos 定义为保证大于任何有效下标的值。

#include <string> //C++ find 查找子串,从索引0开始,查找符合字符串"d"的头索引#include <iostream> using namespace std; void main() {     string s = "abcdefg";     string a = "de";     string::size_type i;     i = s.find(a,0);//从索引0开始,查找符合字符串"d"的头索引     cout<<i<<endl;     string b = s.substr(i,a.size());     cout<<b<<endl; }