常用的字符串相关函数
char类:
1.strcpy(s1,s2);将s2为起始地址的字符串复制到s2中。
2.strncpy(s1,s2,k);将s2为起始地址的字符串的前k个复制到s1中。
char s1[20],s2[20]; cin>>s2; int k=4; strncpy(s1,s2,k); s1[k]='\0'; cout<<s1<<endl;
3.strstr(s1,s2);在s1中查找s2,如果查找到,返回第一次出现的位置;否则返回NULL。
char s1[]={"abc"},s2[]={"iiiabciii"}; char* pos=strstr(s2,s1); if(pos!=NULL) printf("%s\n",pos); //输出:abciii
4.strcmp(s1,s2);按字典序比较s1和s2的大小。相等返回0;s1>s2返回1;s1<s2返回-1。
5.strncmp(s1,s2,n);strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。
char s1[]={"abcdd"}; char s2[]={"abc"}; printf("%d\n",strncmp(s1,s2,3));
6.memcpy(s2,s1,size);内存拷贝函数,将s1中长度为size的内存拷贝到s2中。
char s1[10]={"abcd"}; char s2[10]; memcpy(s2,s1,sizeof s1); puts(s2);
7.strcat(s2,s1);将s1连接到s2后面。
char s1[10]={"abcd"}; char s2[10]={"yyyy"}; strcat(s1,s2); puts(s1);
string类:
1. string.c_str();
返回的是const char*类型;
string s; cin>>s; const char* str=s.c_str(); puts(str);
2.stringstream类.
以string类创建缓冲区,提高输入速度.
#include<cstdio> #include<sstream> #include<iostream> using namespace std; string str; int main() { while(getline(cin,str)) { stringstream stringStream(str); while(stringStream>>str) { cout<<str<<endl; } } return 0; }
3.string.substr(int pos,int len)方法