C语言string函数详解

合集下载

c语言string()的用法

c语言string()的用法

C语言string()的用法1.简介在C语言中,字符串是一系列字符的集合,常用的字符串操作包括拷贝、连接、长度计算等。

C语言提供了一系列的库函数来方便地操作字符串,其中`s tr in g()`函数是一个重要的函数之一。

本文将详细介绍`s tr in g()`函数的用法及示例。

2.函数概述`s tr in g()`函数用于对字符串进行各种操作,包括拷贝、连接、比较等。

其函数原型如下:#i nc lu de<s tr in g.h>c h ar*s tr in g(ch ar*d es t,co ns tc ha r*s r c);其中,`de st`表示目标字符串的指针,`s rc`表示源字符串的指针。

该函数将源字符串中的内容复制到目标字符串中,并返回目标字符串的指针。

3.示例下面通过几个示例来演示`s tr in g()`函数的使用方法。

3.1字符串拷贝字符串拷贝是`s tr in g()`函数最常用的功能之一。

示例代码如下:#i nc lu de<s td io.h>#i nc lu de<s tr in g.h>i n tm ai n(){c h ar so ur ce[]="Hel l o,Wo rl d!";c h ar de st in at io n[20];//使用st r i ng()函数进行字符串拷贝s t ri ng(d es ti na tio n,s ou rc e);p r in tf("拷贝后的字符串:%s\n",de st i na ti on);r e tu rn0;}输出结果为:拷贝后的字符串:He l lo,W or ld!3.2字符串连接`s tr in g()`函数还可以用于字符串的连接。

示例代码如下:#i nc lu de<s td io.h>#i nc lu de<s tr in g.h>i n tm ai n(){c h ar st r1[50]="Hel l o";c h ar st r2[]="Wo rld!";//使用st ri ng()函数进行字符串连接s t ri ng(s tr1,st r1);s t ri ng(s tr1,st r2);p r in tf("连接后的字符串:%s\n",st r1);r e tu rn0;}输出结果为:连接后的字符串:He l lo Wo rl d!3.3字符串比较`s tr in g()`函数还可以用于字符串的比较操作。

c语言string的用法大全

c语言string的用法大全

c语言string的用法大全C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。

C语言能以简易的方式编译、处理低级存储器。

C语言string的用法有哪些呢,请看看下面我为你整理(总结)的c语言string的用法大全_C语言中string使用(方法)。

c语言string的用法函数原型:char *strdup(const char *s)函数功能:字符串拷贝,目的空间由该函数分配函数返回:指向拷贝后的字符串指针参数说明:src-待拷贝的源字符串所属文件:string.h[cpp] view plain#includestdio.h#includestring.h#includealloc.h intmain(){char*dup_str,*string=abcde;dup_str=strdup(string);printf(%s,dup_str);free(dup_str);return0;}@函数名称:strcpy函数原型:char* strcpy(char* str1,char* str2);函数功能:把str2指向的字符串拷贝到str1中去函数返回:返回str1,即指向str1的指针参数说明:所属文件:string.h[cpp] view plain#includestdio.h#includestring.hintmain(){charstring[10];char*str1=abcdefghi;strcpy(string,str1);printf(thestringis:%s\n,string);return0;}@函数名称:strncpy函数原型:char *strncpy(char *dest, const char *src,intcount) 函数功能:将字符串src中的count个字符拷贝到字符串dest中去函数返回:指向dest的指针参数说明:dest-目的字符串,src-源字符串,count-拷贝的字符个数所属文件:string.h[cpp] view plain#includestdio.h#includestring.hintmain(){char*src=bbbbbbbbbbbbbbbbbbbb;//20bschardest[50]=aaaaaaaaaaaaaaaaaaaa;//20asputs(dest);strncpy(dest,src,10);puts(dest);return0;}输出:[cpp] view plain/*******************************************aaaaaaaaaaaaaaaaaaaabbbbbbbbbbaaaaaaaaaa*******************************************/注意:strncpy只复制指定长度的字符,不会自动在末尾加\0。

c语言 string对象 拼接

c语言 string对象 拼接

c语言 string对象拼接C语言中并没有内置的字符串对象,但可以使用字符数组来表示和处理字符串。

在C语言中,字符串是由字符组成的一维字符数组,以空字符('\0')结尾。

字符串拼接是指将两个字符串连接起来形成一个新的字符串。

在C 语言中,可以使用字符串库函数`strcat()`来实现字符串的拼接操作。

`strcat()`函数会将第二个字符串追加到第一个字符串的末尾,并返回第一个字符串的起始地址。

下面来具体讨论如何使用`strcat()`函数进行字符串拼接操作。

1.首先,定义并初始化两个字符串变量:```cchar str1[100] = "Hello";char str2[] = " World!";```2.使用`strcat()`函数将`str2`拼接到`str1`的末尾:```cstrcat(str1, str2);```此时,`str1`的内容变为`"Hello World!"`。

需要注意的是,`str1`的大小必须足够大,能够容纳拼接后的结果,否则可能会发生缓冲区溢出的错误。

除了使用`strcat()`函数,还可以使用`sprintf()`函数来实现字符串的拼接。

`sprintf()`函数可以将格式化的字符串输出到一个字符数组中。

具体操作如下:1.定义并初始化一个字符数组:```cchar str[100] = "Hello";```2.使用`sprintf()`函数将格式化的字符串拼接到`str`的末尾:```csprintf(str, "%s World!", str);```此时,`str`的内容变为`"Hello World!"`。

需要注意的是,`sprintf()`函数在格式化字符串时,需要使用占位符"%s"来表示字符串。

c语言string函数

c语言string函数

c语言string函数
标准 C 语言的string.h头文件中定义了一组有用的函数,被称为字符串处理函数。

字符串就是由字母,数字和符号组成的一行字符序列,通常以字符串结尾显示。

它是一种数据抽象,是用来存储,分析,表示和处理应用程序中的文本数据的一种常见方式。

1.strlen()函数:该函数用来计算字符串的长度,不包括字符串结尾的null字符
'\0'。

该函数所返回的字符数不包括null字符,而只代表字符串中实际的字符数。

2.strcat()函数:该函数的作用是将字符串s2拼接到字符串s1的末尾。

这意味着s1的末尾会出现字符串s2的第一个字符,直到结束符'\0'。

4.strcmp()函数:该函数用于比较两个字符串s1和s2,如果s1>s2,函数会返回正值;如果s1=s2,函数会返回0;如果s1
5.strchr()函数:该函数用于在字符串s1中查找给定字符c。

如果成功,函数会返回指向找到字符的指针;否则,函数会返回NULL。

7.strtok()函数:该函数用于将字符串分割成一系列子字符串,每个子字符串以一个或多个指定的分隔符分隔。

以上就是标准C语言的string.h头文件中的一些常用的字符串处理函数,这些函数主要用于对字符串的操作,如切割,拼接,比较等。

由于 C 语言的数据结构比较简单,因此这个头文件函数的功能也是非常强大的,可以满足各种字符串处理的需求。

c中string函数库常用函数

c中string函数库常用函数

c中string函数库常用函数C语言中的string函数库是一个非常重要的函数库,它包含了许多常用的字符串处理函数。

这些函数可以帮助我们更加方便地处理字符串,提高我们的编程效率。

在本文中,我们将介绍一些常用的string函数库函数。

1. strlen函数strlen函数用于计算字符串的长度,它的原型如下:size_t strlen(const char *s);其中,s是要计算长度的字符串。

该函数返回字符串s的长度,不包括字符串末尾的空字符。

2. strcpy函数strcpy函数用于将一个字符串复制到另一个字符串中,它的原型如下:char *strcpy(char *dest, const char *src);其中,dest是目标字符串,src是源字符串。

该函数将源字符串src 复制到目标字符串dest中,并返回目标字符串dest的指针。

3. strcat函数strcat函数用于将一个字符串连接到另一个字符串的末尾,它的原型如下:char *strcat(char *dest, const char *src);其中,dest是目标字符串,src是要连接的字符串。

该函数将源字符串src连接到目标字符串dest的末尾,并返回目标字符串dest的指针。

4. strcmp函数strcmp函数用于比较两个字符串是否相等,它的原型如下:int strcmp(const char *s1, const char *s2);其中,s1和s2是要比较的两个字符串。

该函数返回一个整数值,如果s1和s2相等,则返回0;如果s1小于s2,则返回一个负数;如果s1大于s2,则返回一个正数。

5. strchr函数strchr函数用于在一个字符串中查找一个字符,它的原型如下:char *strchr(const char *s, int c);其中,s是要查找的字符串,c是要查找的字符。

该函数返回一个指向第一个匹配字符的指针,如果没有找到匹配字符,则返回NULL。

c 中string的用法

c 中string的用法

在 C 语言中,字符串(String)实际上是一个字符数组,以 null 字符('\0')结尾。

C 中没有专门的字符串类型,而是使用字符数组来表示字符串。

以下是一些常见的C 中字符串的用法:
字符数组声明和初始化:
字符串输入和输出:
字符串函数:
C 标准库提供了许多用于处理字符串的函数,这些函数定义在string.h头文件中。

以下是一些常见的字符串函数:
•strlen:计算字符串的长度。

•strcpy 和 strncpy:复制字符串。

•strcat 和 strncat:连接字符串。

这只是 C 语言中字符串的基础用法。

需要注意的是,C 中的字符串是以 null 字符结尾的字符数组,因此在操作字符串时需要确保数组足够大以容纳字符串及其 null 字符。

此外,使用字符串函数时要注意数组边界,以防止缓冲区溢出。

string的各种函数(系统学习)

string的各种函数(系统学习)

string的各种函数(系统学习)1、按照⾯向对象的要求,可以把字符串看作⼀个对象,设计⼀个串类加以描述。

但是,在⼀般的情况下不必建⽴⾃⼰的串类,c++标准在库<string>中给出了类string,提供了丰富的串操作,程序员使⽤指令: #include<string>即存取这个类。

可将类string视为⼀个容器类,其部分操作如下:构造函数:string s:构造⼀个空串sstring s(a):构造串s,并⽤字符数组a初始化string s(a,n):构造串s,⽤字符数组a的前n个字符初始化string s(str):⽤串str构造串s(拷贝初始化)看下⾯代码验证#include<iostream>#include<string.h>#include<map>#include<cstdio>#include<cstring>#include<stdio.h>#include<cmath>#include<ctype.h>#include<math.h>#include<algorithm>#include<set>#include<queue>typedef long long ll;using namespace std;const ll mod=1e9+7;const int maxn=1e5+10;const int maxk=3e5+10;const int maxx=1e4+10;const ll maxe=1000+10;#define INF 0x3f3f3f3f3f3f#define Lson l,mid,rt<<1#define Rson mid+1,r,rt<<1|1int main(){char a[maxn];cin>>a;//输⼊abcdefghstring s(a);//结果为abcdefghstring s1(a,5);//结果为abcdestring s2(s1);//结果为abcdecout<<s<<endl;cout<<s1<<endl;cout<<s2<<endl;return0;}输⼊输出:getline(cin,s,delim):从cin中提取字符存⼊串s中,当遇到delim或者提取的字符个数等于s的长度时结束,如果⾃⼰不设定,默认为'\n' getline(cin,s):遇到'\n'结束cin>>s:遇到空⽩字符终⽌提取,空⽩字符不被读取cout<<s:输出s#include<iostream>#include<string.h>#include<map>#include<cstdio>#include<cstring>#include<stdio.h>#include<cmath>#include<ctype.h>#include<math.h>#include<algorithm>#include<set>#include<queue>typedef long long ll;using namespace std;const ll mod=1e9+7;const int maxn=1e5+10;const int maxk=3e5+10;const int maxx=1e4+10;const ll maxe=1000+10;#define INF 0x3f3f3f3f3f3f#define Lson l,mid,rt<<1#define Rson mid+1,r,rt<<1|1int main(){string s;while(getline(cin,s,'#')){getchar();//⾃⼰指定了字符要加getchar,不然结果会多出⼀个换⾏,但是默认情况下不⽤加getcharcout<<s<<endl;}return0;}操作符:s=val:赋值操作,val可以是⼀个串,⼀个字符或⼀个字符数组s+=val:将val添加到串s之后s[pos]:下标操作s+t,t+s:s和t的连接,返回连接的结果。

c string类的常用方法

c string类的常用方法

c string类的常用方法在C语言中,字符串通常表示为字符数组,而不是像C++那样有专门的字符串类。

但C标准库中提供了一些用于操作和处理字符串的函数。

以下是其中的一些常用方法:1. strcpy():将一个字符串复制到另一个字符串。

```cchar str1[50];strcpy(str1, "Hello, World!");```2. strcat():将一个字符串连接到另一个字符串的末尾。

```cchar str1[50] = "Hello, ";strcat(str1, "World!");```3. strlen():返回字符串的长度,不包括终止字符'\0'。

```cchar str[] = "Hello, World!";printf("%d", strlen(str)); // 输出 13```4. strcmp():比较两个字符串。

```cchar str1[] = "Hello";char str2[] = "World";if (strcmp(str1, str2) < 0) {printf("%s is less than %s\n", str1, str2);} else if (strcmp(str1, str2) > 0) {printf("%s is greater than %s\n", str1, str2); } else {printf("%s is equal to %s\n", str1, str2);}```5. strstr():在字符串中查找子串。

```cchar str[] = "Hello, World!";char sub[] = "World";char result = strstr(str, sub);if (result != NULL) {printf("Found '%s' in '%s'\n", sub, str);} else {printf("Did not find '%s' in '%s'\n", sub, str); }```6. sprintf():将格式化的数据写入字符串。

c语言字符串做函数参数

c语言字符串做函数参数

c语言字符串做函数参数C语言中字符串的处理是编程中一个重要而常见的任务。

在C语言中,字符串并没有作为一种独立的数据类型,而是以字符数组的形式存在。

本文将探讨在C语言中如何使用字符串作为函数参数,以及相关的一些注意事项和最佳实践。

首先,C语言中的字符串是以字符数组的形式存储的,通常以null字符('\0')结尾。

例如,以下是一个简单的字符串声明和初始化的例子:char myString[]="Hello, World!";在这个例子中,myString 是一个字符数组,存储了字符串"Hello, World!",并以null 字符结尾。

字符串的实际长度是字符数减去null 字符的位置。

当我们需要在函数中传递字符串时,通常有两种常见的方式:传递字符数组和传递指向字符数组的指针。

传递字符数组作为函数参数#include <stdio.h>void printString(char str[]){printf("%s\n",str);}int main(){char myString[]="Hello, World!";printString(myString);return0;}在上述例子中,printString 函数接受一个字符数组作为参数,并使用%s 格式符打印字符串。

通过传递字符数组,我们可以直接在函数内部使用字符串,但要注意的是,函数内部对字符串的修改不会影响到调用函数的地方。

传递指向字符数组的指针作为函数参数#include <stdio.h>void printString(char*str){printf("%s\n",str);}int main(){char myString[]="Hello, World!";printString(myString);return0;}在这个例子中,printString 函数接受一个指向字符数组的指针作为参数。

string函数的用法c++

string函数的用法c++

string函数的用法c++在C语言中,string函数是一个非常重要的函数,用于处理字符串数据。

它提供了许多有用的功能,如字符串连接、截取、比较等。

在本篇文章中,我们将介绍string函数的用法,包括其函数原型、基本用法和常见用法示例。

一、string函数简介string函数是C语言标准库中的一个函数,用于处理字符串数据。

它接受一个字符数组作为参数,并返回一个指向该数组的指针。

该函数的主要作用是操作字符串数据,包括字符串连接、截取、比较等操作。

二、string函数函数原型string函数的函数原型通常如下:```cchar*strcpy(char*dest,constchar*src);```该函数的作用是将src指向的字符串复制到dest指向的位置。

它返回一个指向dest的指针,表示已复制的字符串的起始位置。

如果src和dest指向同一块内存区域,则可能导致未定义的行为。

因此,在使用string函数时,需要确保目标数组有足够的空间来存储源字符串。

三、string函数的基本用法在使用string函数时,需要了解其基本用法,包括参数类型和返回值。

以下是一个简单的示例代码:```c#include<stdio.h>#include<string.h>intmain(){chardest[20]="Hello,";constchar*src="World!";char*result=strcpy(dest+5,src);//截取字符串并复制到目标数组中printf("%s\n",result);//输出"Hello,World!"return0;}```在上述示例中,我们使用strcpy函数将src指向的字符串复制到目标数组中。

由于src指向一个常量字符串,因此我们需要将源字符串存储在另一个数组中,以确保在执行过程中不会修改该字符串。

string函数的用法

string函数的用法

string函数的用法string函数在编程中通常用于处理字符串,具有多种用法。

以下是一些常用的string函数及其用法:1、构造函数:string(const char *s);:使用字符串s初始化string对象。

string(int n, char c);:使用n个字符c初始化string对象。

2、常用功能函数:int length() const;:返回当前字符串的长度。

void resize(int len, char c);:将字符串的大小调整为len,并使用字符c填充不足的部分。

string &operator+=(const string &s);:将字符串s连接到当前字符串的末尾。

string &append(const char *s);:将C类型的字符串s连接到当前字符串的末尾。

string substr(int pos = 0, int n = npos) const;:返回从位置pos开始的n个字符组成的字符串。

void swap(string &s2);:交换当前字符串与s2的值。

int find(const char *s, int pos = 0) const;:从位置pos开始查找字符串s在当前字符串中的位置。

int rfind(const string &s, int pos = npos) const;:从位置pos 开始从后向前查找字符串s中前n个字符组成的字符串在当前字符串中的位置。

string &replace(int p0, int n0, const char *s);:删除从位置p0开始的n0个字符,然后在p0处插入字符串s。

string &insert(int p0, const string &s, int pos, int n);:在前4个函数指定的位置p0处插入字符串s中从pos开始的前n个字符。

C语言-字符串函数大全和详解

C语言-字符串函数大全和详解

函数返回strDestination值.
char *strncat(char *strDestination, const char *strSource, size_t count);
将源串strSource开始的count个字符添加到目标串strDest后. 源串strSource的字符会覆盖目标串strDestination后面的结束符NULL. 如果count大于源串长度, 则会用源串的长度值替换count值. 得到的新串后面会自动加上NULL结束符. 与strcat函数一样, 本函数不能处理源串与目标串重叠的情况.
函数返回strDestination值.
char *strset(char *string, int c);
将string串的所有字符设置为字符c, 遇到NULL结束符停止.
函数返回内容调整后的string指针.
char *strnset(char *string, int c, size_t count);
char *strcat(char *strDestination, const char *strSource);
将源串strSource添加到目标串strDestination后面, 并在得到的新串后面加上NULL结束符. 源串strSource的字符会覆盖目标串strDestination后面的结束符NULL. 在字符串的复制或添加过程中没有溢出检查, 所以要保证目标串空间足够大. 不能处理源串与目标串重叠的情况.
获取字符串长度, 字符串结束符NULL不计算在内.
没有返回值指示操作错误.
char *strrev(char *string);
将字符串string中的字符顺序颠倒过来. NULL结束符位置不变.

c中string的用法

c中string的用法

c中string的用法c中string的用法的用法你知道吗?下面小编就跟你们详细介绍下c中string的用法的用法,希望对你们有用。

c中string的用法的用法如下:为了在我们的程序中使用string类型,我们必须包含头文件<string>。

如下:#include <string> //注意这里不是string.h string.h是C字符串头文件#include <string>using namespace std;1.声明一个C++字符串声明一个字符串变量很简单:string Str;这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。

上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。

String类的构造函数和析构函数如下:a) string s; //生成一个空字符串sb) string s(str) //拷贝构造函数生成str的复制品c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值e) string s(cstr) //将C字符串作为s的初值f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。

g) string s(num,c) //生成一个字符串,包含num个c字符h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值i) s.~string() //销毁所有字符,释放内存都很简单,我就不解释了。

2.字符串操作函数这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。

c语言string数组定义

c语言string数组定义

c语言string数组定义在 C 语言中,可以使用 * 符号和 sizeof 运算符来定义字符串数组。

例如:```c#include <stdio.h>#include <stdlib.h>#define MAX_SIZE 100 // 最大容量char str[MAX_SIZE][256]; // 字符串数组int main() {// 初始化字符串数组for (int i = 0; i < MAX_SIZE; i++) {for (int j = 0; j < 256; j++) {str[i][j] = " ";}}// 输出字符串数组printf("字符串数组:");for (int i = 0; i < MAX_SIZE; i++) {printf("%s ", str[i]);}printf("");// 字符串互换int i, j;for (i = 0; i < MAX_SIZE; i++) {for (j = 0; j < 256; j++) {if (str[i][j] != " ") {str[i][j] = str[i][j+1];}}}return 0;}```在这个例子中,我们定义了一个字符串数组,该数组包含 256 个字符,容量为 MAX_SIZE。

我们首先使用两个嵌套的循环初始化该数组。

在外层循环中,我们使用两个指针来遍历整个字符串,分别为 str[i] 和 str[i+1]。

在内层循环中,我们使用一个指针来遍历每行字符串中的每个字符,并将它们存储在字符变量中。

最后,我们使用 if 语句将非空格字符交换到下一个空格前。

需要注意的是,在使用字符串数组时,需要确保数组元素的类型一致,否则会导致运行时错误。

在这个例子中,str[0] 和 str[i] 的类型都是字符数组,但它们的索引不同,因此需要手动进行类型转换。

c语言中string用法

c语言中string用法

c语言中string用法C语言中string的用法在C语言中,string是一个用来存储字符序列的数据类型。

在C语言中并没有内置的string类型,而是通过字符数组来表示字符串。

下面是关于C语言中string 的一些常见用法:1. 字符串声明和初始化要声明一个字符串变量,可以使用字符数组来表示。

例如:```cchar str[20]; // 声明一个可以容纳20个字符的字符串char str[] = "Hello"; // 声明并初始化一个包含字符串"Hello"的字符串```2. 字符串赋值可以使用strcpy函数来将一个字符串赋值给另一个字符串。

例如:```cchar str1[20];char str2[] = "Hello";strcpy(str1, str2); // 将str2复制到str1中```3. 字符串连接可以使用strcat函数来连接两个字符串。

例如:char str1[20] = "Hello";char str2[] = "World";strcat(str1, str2); // 将str2连接到str1的末尾```4. 字符串长度可以使用strlen函数来获取一个字符串的长度。

例如:```cchar str[] = "Hello";int length = strlen(str); // 获取字符串的长度```5. 字符串比较可以使用strcmp函数来比较两个字符串是否相同。

例如:```cchar str1[] = "Hello";char str2[] = "World";int result = strcmp(str1, str2); // 比较str1和str2是否相同,返回0表示相同```6. 字符串截取可以使用strncpy函数来从一个字符串中截取指定长度的子字符串。

string函数的用法

string函数的用法

string函数的用法string函数是C++中常用的字符串处理函数,它可以对字符串进行各种操作,如拼接、查找、替换等。

下面介绍一些常用的string函数的用法。

1. string的定义和初始化定义string变量时,需要包含头文件<string>,可以使用以下两种方式进行初始化:string str1; //定义一个空字符串string str2 = "hello world"; //定义并初始化一个字符串2. string的拼接使用“+”运算符可以将两个字符串拼接起来,例如:string str1 = "hello";string str2 = "world";string str3 = str1 + " " + str2; //拼接后的字符串为"hello world"3. string的查找使用find函数可以查找字符串中是否包含某个子串,如果包含则返回子串在字符串中的位置,否则返回string::npos。

例如:string str = "hello world";int pos = str.find("world"); //pos的值为64. string的替换使用replace函数可以将字符串中的某个子串替换为另一个字符串,例如:string str = "hello world";str.replace(6, 5, "there"); //将"world"替换为"there"5. string的截取使用substr函数可以截取字符串中的某一段子串,例如:string str = "hello world";string sub = str.substr(6, 5); //截取"world"6. string的大小写转换使用transform函数可以将字符串中的字母全部转换为大写或小写,例如:string str = "Hello World";transform(str.begin(), str.end(), str.begin(), ::tolower); //将字符串转换为小写transform(str.begin(), str.end(), str.begin(), ::toupper); //将字符串转换为大写以上就是string函数的一些常用用法,掌握这些函数可以让我们更加方便地处理字符串。

c++ string类型的各种函数

c++ string类型的各种函数

c++ string类型的各种函数C++中的string类型是标准库提供的一个字符串类,它有许多实用的函数和方法。

以下是一些常用的string类型函数:1.构造函数和析构函数:○默认构造函数:string(),创建一个空字符串。

○拷贝构造函数:string(const string &str),创建一个与str 相同的字符串。

○字符串字面值构造函数:string("string_literal"),创建一个字符串字面值的副本。

○初始化列表构造函数:string(char c, int n),创建一个包含n个字符c的字符串。

2.字符串操作函数:○+:字符串连接操作,string s1 + s2。

○+=:字符串连接赋值操作,s1 += s2。

○[]:字符串切片操作,string s[begin, end)。

○at:字符串切片操作,string s.at(n)。

○find:查找子字符串在字符串中的位置,size_t find(const string &substr)。

○rfind:从字符串末尾开始查找子字符串的位置,size_t rfind(const string &substr)。

○substr:提取字符串的一部分,string substr(size_t pos, size_t len)。

○insert:在指定位置插入字符或子字符串,void insert(size_t pos, char c)或void insert(size_t pos, const string &substr)。

○erase:删除字符串中的字符或子字符串,void erase(size_t pos, size_t len)。

○replace:替换字符串中的子字符串,void replace(size_t pos, size_t len, const string &substr)。

string函数

string函数

函数名: stpcpy功能: 拷贝一个字符串到另一个用法: char *stpcpy(char *destin, char *source);程序例:#include <stdio.h>#include <string.h>int main(void){char string[10];char *str1 = "abcdefghi";stpcpy(string, str1);printf("%s\n", string);return 0;}函数名: strcat功能: 字符串拼接函数用法: char *strcat(char *destin, char *source);程序例:#include <string.h>#include <stdio.h>int main(void){char destination[25];char *blank = " ", *c = "C++", *Borland = "Borland";strcpy(destination, Borland);strcat(destination, blank);strcat(destination, c);printf("%s\n", destination);return 0;}函数名: strchr功能: 在一个串中查找给定字符的第一个匹配之处\用法: char *strchr(char *str, char c);程序例:#include <string.h>#include <stdio.h>int main(void){char string[15];char *ptr, c = 'r';strcpy(string, "This is a string");ptr = strchr(string, c);if (ptr)printf("The character %c is at position: %d\n", c, ptr-string);elseprintf("The character was not found\n");return 0;}函数名: strcmp功能: 串比较用法: int strcmp(char *str1, char *str2);看Asic码,str1>str2,返回值> 0;两串相等,返回0程序例:#include <string.h>#include <stdio.h>int main(void){char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";int ptr;ptr = strcmp(buf2, buf1);if (ptr > 0)printf("buffer 2 is greater than buffer 1\n");elseprintf("buffer 2 is less than buffer 1\n");ptr = strcmp(buf2, buf3);if (ptr > 0)printf("buffer 2 is greater than buffer 3\n");elseprintf("buffer 2 is less than buffer 3\n");return 0;}函数名: strncmpi功能: 将一个串中的一部分与另一个串比较, 不管大小写用法: int strncmpi(char *str1, char *str2, unsigned maxlen); 程序例:#include <string.h>#include <stdio.h>int main(void){char *buf1 = "BBB", *buf2 = "bbb";int ptr;ptr = strcmpi(buf2, buf1);if (ptr > 0)printf("buffer 2 is greater than buffer 1\n");if (ptr < 0)printf("buffer 2 is less than buffer 1\n");if (ptr == 0)printf("buffer 2 equals buffer 1\n");return 0;}函数名: strcpy功能: 串拷贝用法: char *strcpy(char *str1, char *str2);程序例:#include <stdio.h>#include <string.h>int main(void){char string[10];char *str1 = "abcdefghi";strcpy(string, str1);printf("%s\n", string);return 0;}函数名: strcspn功能: 在串中查找第一个给定字符集内容的段用法: int strcspn(char *str1, char *str2);程序例:#include <stdio.h>#include <string.h>#include <alloc.h>int main(void){char *string1 = "1234567890";char *string2 = "747DC8";int length;length = strcspn(string1, string2);printf("Character where strings intersect is at position %d\n", length);return 0;}函数名: strdup功能: 将串拷贝到新建的位置处用法: char *strdup(char *str);程序例:#include <stdio.h>#include <string.h>#include <alloc.h>int main(void){char *dup_str, *string = "abcde";dup_str = strdup(string);printf("%s\n", dup_str);free(dup_str);return 0;}函数名: stricmp功能: 以大小写不敏感方式比较两个串用法: int stricmp(char *str1, char *str2);程序例:#include <string.h>#include <stdio.h>int main(void){char *buf1 = "BBB", *buf2 = "bbb";int ptr;ptr = stricmp(buf2, buf1);if (ptr > 0)printf("buffer 2 is greater than buffer 1\n");if (ptr < 0)printf("buffer 2 is less than buffer 1\n");if (ptr == 0)printf("buffer 2 equals buffer 1\n");return 0;}函数名: strerror功能: 返回指向错误信息字符串的指针用法: char *strerror(int errnum);程序例:#include <stdio.h>#include <errno.h>int main(void){char *buffer;buffer = strerror(errno);printf("Error: %s\n", buffer);return 0;}函数名: strcmpi功能: 将一个串与另一个比较, 不管大小写用法: int strcmpi(char *str1, char *str2);程序例:#include <string.h>#include <stdio.h>int main(void){char *buf1 = "BBB", *buf2 = "bbb";int ptr;ptr = strcmpi(buf2, buf1);if (ptr > 0)printf("buffer 2 is greater than buffer 1\n");if (ptr < 0)printf("buffer 2 is less than buffer 1\n");if (ptr == 0)printf("buffer 2 equals buffer 1\n");return 0;}函数名: strncmp功能: 串比较用法: int strncmp(char *str1, char *str2, int maxlen);程序例:#include <string.h>#include <stdio.h>int main(void){char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";int ptr;ptr = strncmp(buf2,buf1,3);if (ptr > 0)printf("buffer 2 is greater than buffer 1\n");elseprintf("buffer 2 is less than buffer 1\n");ptr = strncmp(buf2,buf3,3);if (ptr > 0)printf("buffer 2 is greater than buffer 3\n");elseprintf("buffer 2 is less than buffer 3\n");return(0);}函数名: strncmpi功能: 把串中的一部分与另一串中的一部分比较, 不管大小写用法: int strncmpi(char *str1, char *str2);程序例:#include <string.h>#include <stdio.h>int main(void){char *buf1 = "BBBccc", *buf2 = "bbbccc";int ptr;ptr = strncmpi(buf2,buf1,3);if (ptr > 0)printf("buffer 2 is greater than buffer 1\n");if (ptr < 0)printf("buffer 2 is less than buffer 1\n");if (ptr == 0)printf("buffer 2 equals buffer 1\n");return 0;}函数名: strncpy功能: 串拷贝用法: char *strncpy(char *destin, char *source, int maxlen);程序例:#include <stdio.h>#include <string.h>int main(void){char string[10];char *str1 = "abcdefghi";strncpy(string, str1, 3);string[3] = '\0';printf("%s\n", string);return 0;}函数名: strnicmp功能: 不注重大小写地比较两个串用法: int strnicmp(char *str1, char *str2, unsigned maxlen); 程序例:#include <string.h>#include <stdio.h>int main(void){char *buf1 = "BBBccc", *buf2 = "bbbccc";int ptr;ptr = strnicmp(buf2, buf1, 3);if (ptr > 0)printf("buffer 2 is greater than buffer 1\n");if (ptr < 0)printf("buffer 2 is less than buffer 1\n");if (ptr == 0)printf("buffer 2 equals buffer 1\n");return 0;}函数名: strnset功能: 将一个串中的所有字符都设为指定字符用法: char *strnset(char *str, char ch, unsigned n);程序例:#include <stdio.h>#include <string.h>int main(void){char *string = "abcdefghijklmnopqrstuvwxyz";char letter = 'x';printf("string before strnset: %s\n", string);strnset(string, letter, 13);printf("string after strnset: %s\n", string);return 0;}函数名: strpbrk功能: 在串中查找给定字符集中的字符用法: char *strpbrk(char *str1, char *str2);程序例:#include <stdio.h>#include <string.h>int main(void){char *string1 = "abcdefghijklmnopqrstuvwxyz";char *string2 = "onm";char *ptr;ptr = strpbrk(string1, string2);if (ptr)printf("strpbrk found first character: %c\n", *ptr);elseprintf("strpbrk didn't find character in set\n");return 0;}功能: 在串中查找指定字符的最后一个出现用法: char *strrchr(char *str, char c);程序例:#include <string.h>#include <stdio.h>int main(void){char string[15];char *ptr, c = 'r';strcpy(string, "This is a string");ptr = strrchr(string, c);if (ptr)printf("The character %c is at position: %d\n", c, ptr-string);elseprintf("The character was not found\n");return 0;}函数名: strrev功能: 串倒转用法: char *strrev(char *str);程序例:#include <string.h>#include <stdio.h>int main(void){char *forward = "string";printf("Before strrev(): %s\n", forward);strrev(forward);printf("After strrev(): %s\n", forward);return 0;}功能: 将一个串中的所有字符都设为指定字符用法: char *strset(char *str, char c);程序例:#include <stdio.h>#include <string.h>int main(void){char string[10] = "123456789";char symbol = 'c';printf("Before strset(): %s\n", string);strset(string, symbol);printf("After strset(): %s\n", string);return 0;}函数名: strspn功能: 在串中查找指定字符集的子集的第一次出现用法: int strspn(char *str1, char *str2);程序例:#include <stdio.h>#include <string.h>#include <alloc.h>int main(void){char *string1 = "1234567890";char *string2 = "123DC8";int length;length = strspn(string1, string2);printf("Character where strings differ is at position %d\n", length);return 0;}功能: 在串中查找指定字符串的第一次出现用法: char *strstr(char *str1, char *str2);程序例:#include <stdio.h>#include <string.h>int main(void){char *str1 = "Borland International", *str2 = "nation", *ptr;ptr = strstr(str1, str2);printf("The substring is: %s\n", ptr);return 0;}函数名: strtod功能: 将字符串转换为double型值用法: double strtod(char *str, char **endptr);程序例:#include <stdio.h>#include <stdlib.h>int main(void){char input[80], *endptr;double value;printf("Enter a floating point number:");gets(input);value = strtod(input, &endptr);printf("The string is %s the number is %lf\n", input, value);return 0;}函数名: strtok功能: 查找由在第二个串中指定的分界符分隔开的单词用法: char *strtok(char *str1, char *str2);程序例:#include <string.h>#include <stdio.h>int main(void){char input[16] = "abc,d";char *p;p = strtok(input, ",");if (p) printf("%s\n", p);p = strtok(NULL, ",");if (p) printf("%s\n", p);return 0;}函数名: strtol功能: 将串转换为长整数用法: long strtol(char *str, char **endptr, int base); 程序例:#include <stdlib.h>#include <stdio.h>int main(void){char *string = "87654321", *endptr;long lnumber;lnumber = strtol(string, &endptr, 10);printf("string = %s long = %ld\n", string, lnumber);return 0;}函数名: strupr功能: 将串中的小写字母转换为大写字母用法: char *strupr(char *str);程序例:#include <stdio.h>#include <string.h>int main(void){char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;ptr = strupr(string);printf("%s\n", ptr);return 0;}函数名: swab功能: 交换字节用法: void swab (char *from, char *to, int nbytes);程序例:#include <stdlib.h>#include <stdio.h>#include <string.h>char source[15] = "rFna koBlrna d";char target[15];int main(void){swab(source, target, strlen(source));printf("This is target: %s\n", target);return 0;函数名:strstr原型:extern char *strstr(char *haystack, char *needle);用法:#include <string.h>功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言string函数详解C语言string函数详解函数原型: char *strdup(const char *s) 函数功能: 字符串拷贝,目的空间由该函数分配函数返回: 指向拷贝后的字符串指针参数说明: src-待拷贝的源字符串所属文件: <string.h>#include <stdio.h>#include <string.h>#include <alloc.h>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的指针参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){char string[10];char *str1="abcdefghi";strcpy(string,str1);printf("the string is:%s\n",string);return 0;}@函数名称: strncpy函数原型: char *strncpy(char *dest, const char *src,int count)函数功能: 将字符串src中的count个字符拷贝到字符串dest中去函数返回: 指向dest的指针参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){char string[10];char *str1="abcdefghi";strncpy(string,str1,3);string[3]='\0';printf("%s",string);return 0;}@函数名称: strcat函数原型: char* strcat(char * str1,char * str2);函数功能: 把字符串str2接到str1后面,str1最后的'\0'被取消函数返回: str1参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){char buffer[80];strcpy(buffer,"Hello ");strcat(buffer,"world");printf("%s\n",buffer);return 0;}函数原型: char *strncat(char *dest, const char *src, size_t maxlen)函数功能: 将字符串src中前maxlen个字符连接到dest中函数返回:参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>char buffer[80];int main(){strcpy(buffer,"Hello ");strncat(buffer,"world",8);printf("%s\n",buffer);strncat(buffer,"*************",4);printf("%s\n",buffer);return 0;}函数原型: int strcmp(char * str1,char * str2);函数功能: 比较两个字符串str1,str2.函数返回: str1<str2,返回负数; str1=str2,返回 0; str1>str2,返回正数.参数说明:所属文件: <string.h>#include <string.h>#include <stdio.h>int main(){char *buf1="aaa", *buf2="bbb", *buf3="ccc"; int ptr;ptr=strcmp(buf2, buf1);if(ptr>0) printf("buffer 2 is greater than buffer 1\n");else printf("buffer 2 is less than buffer 1\n");ptr=strcmp(buf2, buf3);if(ptr>0) printf("buffer 2 is greater than buffer 3\n");else printf("buffer 2 is less than buffer 3\n");return 0;}@函数名称: strncmp函数原型: int strncmp(char *str1,char *str2,int count)函数功能: 对str1和str2中的前count个字符按字典顺序比较函数返回: 小于0:str1<str2,等于0:str1=str2,大于0:str1>str2参数说明: str1,str2-待比较的字符串,count-比较的长度所属文件: <string.h>#include <string.h>#include <stdio.h>int main(){int ptr;char *buf1="aaabbb",*buf2="bbbccc",*buf3="ccc"; ptr=strncmp(buf2,buf1,3);if (ptr>0) printf("buffer 2 is greater than buffer 1");else printf("buffer 2 is less than buffer 1");ptr=strncmp(buf2,buf3,3);if (ptr>0) 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中”字符的位置指针函数返回: 位置指针参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){char *p="Find all vowels";while(p){printf("%s\n",p);p=strpbrk(p+1,"aeiouAEIOU"); }return 0;}@函数名称: strcspn函数原型: int strcspn(const char *s1, const char *s2)函数功能: 统计s1中从头开始直到第一个“来自s2中的字符”出现的长度函数返回: 长度参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){printf("%d\n",strcspn("abcbcadef","cba") );printf("%d\n",strcspn("xxxbcadef","cba") );printf("%d\n",strcspn("123456789","cba") );return 0;}@函数名称: strspn函数原型: int strspn(const char *s1, const char *s2)函数功能: 统计s1中从头开始直到第一个“不来自s2中的字符”出现的长度函数返回: 位置指针参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>#include <alloc.h>int main(){printf("%d\n",strspn("out to lunch","aeiou"));printf("%d\n",strspn("out to lunch","xyz"));return 0;}@函数名称: strchr函数原型: char* strchr(char* str,char ch); 函数功能: 找出str指向的字符串中第一次出现字符ch的位置函数返回: 返回指向该位置的指针,如找不到,则返回空指针参数说明: str-待搜索的字符串,ch-查找的字符所属文件: <string.h>#include <string.h>#include <stdio.h>int main(){char string[15];char *ptr, c='r';strcpy(string, "This is a string");ptr=strchr(string, c);if (ptr)printf("The character %c is at position: %d\n",c,ptr-string);elseprintf("The character was notfound\n");return 0;}@函数名称: strrchr函数原型: char *strrchr(const char *s, int c)函数功能: 得到字符串s中最后一个含有c字符的位置指针函数返回: 位置指针参数说明:所属文件: <string.h>#include <string.h>#include <stdio.h>int main(){char string[15];char *ptr,c='r';strcpy(string,"This is a string");ptr=strrchr(string,c);if (ptr)printf("The character %c is atposition:%d",c,ptr-string);elseprintf("The character was not found"); return 0;}@函数名称: strstr函数原型: char* strstr(char* str1,char* str2);函数功能: 找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)函数返回: 返回该位置的指针,如找不到,返回空指针参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){char *str1="Open Watcom C/C++",*str2="Watcom",*ptr;ptr=strstr(str1,str2);printf("The substring is:%s\n",ptr);return 0;}@函数名称: strrev函数原型: char *strrev(char *s)函数功能: 将字符串中的所有字符颠倒次序排列函数返回: 指向s的指针参数说明:所属文件: <string.h>#include <string.h>#include <stdio.h>int main(){char *forward="string";printf("Before strrev():%s",forward); strrev(forward);printf("After strrev(): %s",forward); return 0;}@函数名称: strnset函数原型: char *strnset(char *s, int ch, size_t n)函数功能: 将字符串s中前n个字符设置为ch的值函数返回: 指向s的指针参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){char *string="abcdefghijklmnopqrstuvwxyz"; char letter='x';printf("string before strnset: %s",string); strnset(string,letter,13);printf("string after strnset: %s",string); return 0;}@函数名称: strset函数原型: char *strset(char *s, int ch) 函数功能: 将字符串s中所有字符设置为ch 的值函数返回: 指向s的指针参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){char string[10]="123456789";char symbol='c';printf("Before strset(): %s", string); strset(string, symbol);printf("After strset(): %s", string);return 0;}@函数名称: strtok函数原型: char *strtok(char *s1, const char *s2)函数功能: 分解s1字符串为用特定分隔符分隔的多个字符串(一般用于将英文句分解为单词) 函数返回: 字符串s1中首次出现s2中的字符前的子字符串指针参数说明: s2一般设置为s1中的分隔字符规定进行子调用时(即分割s1的第二、三及后续子串)第一参数必须是NULL在每一次匹配成功后,将s1中分割出的子串位置替换为NULL(摘下链中第一个环),因此s1被破坏了。

相关文档
最新文档