常用的字符串相关函数

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]='';
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
",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
",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)方法

原文地址:https://www.cnblogs.com/crazyacking/p/4693906.html