ACM字符串常用库函数

strchr字符查找

原型: char * strrchr ( char * str, int character);
功能: 在str中查找character,返回指向与character最后一次匹配的元素的指针,如果没有找到,返回NULL指针

示例

char str[20]="helloworld";
char ch='h';
char *p=strchr(str,ch);
if(p!=NULL)
    cout<<*p;
else
    cout<<"not found"<

strstr字符串查找

原型 char * strstr ( char * str1, const char * str2);
头文件 string.h/cstring
功能: 在str1中查找匹配str2的子串,并返回指向首次匹配时的第一个元素指针。如果没有找到,返回NULL指针。

示例

char str1[20]="helloworld";
char str2[20]="world";
int len=strlen(str2);
char *ch;
ch=strstr(str1,str2);
if(ch!=NULL)
{
    for(int i=0;icout<<*(ch+i);
}//输出:world

strncpy字符串截取

原型 char *strncpy(char *dest,char *src,size_t n)
头文件: string.h/cstring
功能: 把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。
注意: 如果n

示例

char str1[20]="hello";
char str2[20]="worldworld";
int len=strlen(str1);
strncpy(str1+len,str2+5,5);//将world拼在str1后面
cout<

strcpy字符串拷贝

原型 char *strcpy(char *destin, const char *source);
destin 目标字符串
source 被拷贝字符串

strcmp字符串比较

原型 int strcmp(char *str1, char *str2)
返回值: str1>str2,返回值 > 0;两串相等,返回0

strcat字符串拼接函数

原型 char *strcat(char *destin, char *source)
结果: 将source拼接到destin后面
返回: destin的指针
注意: destin的内存必须足够大

注意上面这些函数都是用于char型数组不一定适用于string


string类转为字符数组c_str();

原型: const char *c_str();
头文件: string

注意用法

string str="hello";
char ch[20];//定义数组
strcpy(ch,str.c_str());//使用strcpy()函数给字符数组赋值
cout<

将char转为string

直接赋值

string str;
char ch[20]="hello";
str=ch;
cout<<str;

实数型数据与字符型数据的转换

c++的库提供的库函数stringstream函数可以实行数据类型的转换可以替代atof, atoi, atoll, sprintf…
头文件:< sstream >
缺点:创建一个stringstream很慢,因此可以只创建一个,重复使用时使用stream.clear(),提高效率
注意使用方式

实例

#include
#include
#include
using namespace std;
int main()
{
    //将int型转化为字符串
    stringstream stream;//定义stream
    int num=123; //long long型数据同理只要注意数据类型的定义方式正确即可
    string str;
    stream<>str;
    cout<//输出:123

    char s[20]="123.321"; //stringstream函数对字符数字同样有效
    double f;
    stream.clear();//多次转换前必须清楚stream
    stream<>f;
    cout<//输出:123.321
    return 0;
}

stringstream实现字符串的分离

string str;
    getline(cin,str);
    stringstream ss(str);//将str的字符串复制到ss内
    while(ss>>str)//从ss内重新去除一个一个字符串以空格为分隔符输出到str
    {
        cout<<str<//输入
hello world I come from china

//输出
hello
world
I
come
from
china

你可能感兴趣的:(字符串库函数)