string.h中的函数

合集下载

C++的string类型中关于append函数、push_back函数和+=运算符的区别

C++的string类型中关于append函数、push_back函数和+=运算符的区别

C++的string类型中关于append函数、push_back函数和+=运算符的区别部分内容翻译⾃引⾔C++的string类中,要想在字符串后附加字符,可以使⽤append函数、push_back函数或者是+=运算符,这些附加字符的⽅法其实现不尽相同,因此应⽤场景也不同。

⾸先我们先⼀窥源码(gcc 4.9.2):basic_string.h://-------------------------------+=运算符重载部分---------------------------//追加 string 类型字符串basic_string&operator+=(const basic_string& __str){ return this->append(__str); }//追加 cstring 类型字符串basic_string&operator+=(const _CharT* __s){ return this->append(__s); }//追加单个字符basic_string&operator+=(_CharT __c){this->push_back(__c);return *this;}#if __cplusplus >= 201103L//追加字符类型的初始化列表basic_string&operator+=(initializer_list<_CharT> __l){ return this->append(__l.begin(), __l.size()); }//-------------------------------append函数实现部分---------------------------//追加 string 类型字符串basic_string&append(const basic_string& __str);//追加部分 string 类型字符串basic_string&append(const basic_string& __str, size_type __pos, size_type __n);//追加部分 cstring 类型字符串basic_string&append(const _CharT* __s, size_type __n);//追加 cstring 类型字符串basic_string&append(const _CharT* __s){__glibcxx_requires_string(__s);return this->append(__s, traits_type::length(__s));}//追加多个字符basic_string&append(size_type __n, _CharT __c);#if __cplusplus >= 201103L//追加字符类型的初始化列表basic_string&append(initializer_list<_CharT> __l){ return this->append(__l.begin(), __l.size()); }#endif // C++11template<class _InputIterator>template<class _InputIterator>basic_string& //附加给定范围内的多个字符append(_InputIterator __first, _InputIterator __last){ return this->replace(_M_iend(), _M_iend(), __first, __last); }//-------------------------------push_back函数实现部分---------------------------//追加单个字符voidpush_back(_CharT __c){const size_type __len = 1 + this->size();if (__len > this->capacity() || _M_rep()->_M_is_shared())this->reserve(__len);traits_type::assign(_M_data()[this->size()], __c);_M_rep()->_M_set_length_and_sharable(__len);}从以上源码的⾓度来分析append函数、push_back函数和+=运算符的不同使⽤场景,就⾮常直观了:+= 运算符:追加单个参数值。

C语言字符串函数大全

C语言字符串函数大全

今天总结了下C语言字符串函数。

C语言字符串函数总结:1.字符处理库(ctype)中的函数2.stdio中的字符串和字符输入/输出的函数3.通用实用库stdlib中的字符串转换函数4.字符串处理库string中的字符串处理函数C语言的字符串实际上是存储单个字符的数组,结尾包含一个结束该字符串的特别的字符("空字符",用'\0'表示)。

char string1[]="first"实际上有6个元素。

char color="blue" char * p="blue"注意p[i]不能修改,若需修改应用字符数组。

一、.字符处理库(ctype)中的函数#include<ctype.h>函数原型:int f(int c)isdigit, isalpha, isalnum, isxdigit, islower, isupper, tolower, toupper, isspace,空白字符:新行符\n, 空格,回车''\r",水平制表符"\t", 垂直制表符"\v" isctrl, ispunct, isprint, isalpha二、stdio中的字符串和字符输入/输出的函数int getchar(void) 从标准输入设备读取字符以整数返回char * get(char * s) 从标准输入设备读入字符到数组s直到遇到新行符和文件结束符为止,然后再数组后追加NULL字符int putchar(int c) 打印字符int puts(const char * s) 打印字符串s和新行符int sprintf(char * s, const char * format) 与printf区别在于输出结果存放在s中int sscanf(char * s, const char * format); 与scanf区别在于从数组s读取数据示例1 字符串反转#include <stdio.h> void reverse(char *s) {if(s[0] == '\0') return;else{reverse(&s[1]); putchar(s[0]);}}int main(){char s[100];gets(s);reverse(s);return 0;}输入:sf输出:fs示例2 sscanf和sprintf #include<stdio.h>int main(){int x=1;double y=2.1;char s[100];sprintf(s,"Hello!%d, %f", x, y);puts(s);sscanf(s,"%d%f",&x,&y);printf("x:%d, y:%f", x, y);return 0;}输出:Hello!1, 2.100000x:1, y:2.100000三、stdlib中的字符串转换函数#include<stdlib.h>1. atoi(将字符串转换成整型数)定义函数int atoi(const char *nptr); 函数说明atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。

c语言string函数详解

c语言string函数详解

c语言string函数详解linux kernel code : kernel/lib/string.cstrsep,strtok,strchr ,strstr ......PS:本文包含了大部分strings函数的说明,并附带举例说明。

本来想自己整理一下的,发现已经有前辈整理过了,就转了过来。

@函数原型: char *strdup(const char *s)函数功能: 字符串拷贝,目的空间由该函数分配函数返回: 指向拷贝后的字符串指针参数说明: src-待拷贝的源字符串所属文件: <string.h>[cpp] view plain copy1.#include <stdio.h>2.#include <string.h>3.#include <alloc.h>4.int main()5.{6.char *dup_str, *string="abcde";7.dup_str=strdup(string);8.printf("%s", dup_str);9.free(dup_str);10.return 0;11.}@函数名称: strcpy函数原型: char* strcpy(char* str1,char* str2);函数功能: 把str2指向的字符串拷贝到str1中去函数返回: 返回str1,即指向str1的指针参数说明:所属文件: <string.h>[cpp] view plain copy1.#include <stdio.h>2.#include <string.h>3.int main()4.{5.char string[10];6.char *str1="abcdefghi";7.strcpy(string,str1);8.printf("the string is:%s\n",string);9.return 0;10.}@函数名称: strncpy函数原型: char *strncpy(char *dest, const char *src,intcount)函数功能: 将字符串src中的count个字符拷贝到字符串dest中去函数返回: 指向dest的指针参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数所属文件: <string.h>[cpp] view plain copy1.#include<stdio.h>2.#include<string.h>3.int main()4.{5.char*src = "bbbbbbbbbbbbbbbbbbbb";//20 'b's6.char dest[50] ="aaaaaaaaaaaaaaaaaaaa";//20 'a's7.8.puts(dest);9.strncpy(dest, src, 10);10.11.puts(dest);12.return0;13.}输出:[cpp] view plain copy1./*******************************************2.aaaaaaaaaaaaaaaaaaaa3.bbbbbbbbbbaaaaaaaaaa4.*******************************************/注意:strncpy只复制指定长度的字符,不会自动在末尾加'\0'。

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标准库源码解剖(4):字符串处理函数string.h和wchar.h

C标准库源码解剖(4):字符串处理函数string.h和wchar.h

C标准库源码解剖(4):字符串处理函数string.h和wchar.h简要介绍资料的主要内容,以获得更多的关注C标准库源码解剖(4):字符串处理函数string.h和wchar.h分类:C 20XX年-10-08 12:39 648人阅读评论(1) 收藏举报string.h中包含了所有的字符串处理函数,也包含了内存处理函数,因为这些内存处理函数(如比如、复制、搜索)的功能与字符串处理函数功能类似。

我们是用通用指针来指向内存块的,通用指针可以用char*类型(传统C语言),也可以用void*类型(标准C语言)。

每个函数都有对应的宽字符版本,在wchar.h中。

string.h中包含的标准库函数:strcat,strncat,strcmp,strncmp,strcpy,strncpy,strlen,strchr,strrchr,strspn,strcsp n,strpbrk, strstr,strok,strcoll,strxfrm,strerror;memcpy,memmove,memcmp,memchr,memeset。

GNU还提供了很多非标准的扩展,如memccpy,rawmemchr,memrchr, strdup,strndup等。

view plaincopy to clipboardprint? 1. /* ISO C99 Standard: 7.21 字符串处理string.h */2. #ifndef _STRING_H3. #define _STRING_H 14. #include features.h /* 非标准头文件,定义了一些编译选项*/5. __BEGIN_DECLS6. /* 从stddef.h中获得size_t和NULL */7. #define __need_size_t8. #define __need_NULL9. #include stddef.h10. __BEGIN_*****CE_STD11. /* 从SRC中复制N个字节的内容到DEST中*/12. extern void *memcpy (void *__restrict __dest,13. __const void *__restrict __src, size_t __n)14. __THROW __nonnull ((1, 2));15. /* 从SRC中复制N个字节的内容到DEST中,保证对重叠字符串(即SRC与DEST共用存储空间)有正确的行为*/16. extern void *memmove (void *__dest, __const void *__src, size_t __n)17. __THROW __nonnull ((1, 2));18. __END_*****CE_STD19. /* 从SRC中复制不超过N个字节的内容到DEST中,当遇到字符C返回DEST中C的拷贝后面的字符指针。

c语言中string.h库函数

c语言中string.h库函数

C语言中的`string.h`库函数是一组用于处理字符串的函数,包括字符串的复制、连接、比较、查找等操作。

以下是一些常用的`string.h`库函数:1. `strcpy(char *dest, const char *src)`:将字符串src复制到dest中,返回dest。

2. `strncpy(char *dest, const char *src, size_t n)`:将字符串src的前n个字符复制到dest中,返回dest。

3. `strcat(char *dest, const char *src)`:将字符串src连接到dest的末尾,返回dest。

4. `strncat(char *dest, const char *src, size_t n)`:将字符串src的前n个字符连接到dest的末尾,返回dest。

5. `strcmp(const char *a, const char *b)`:比较两个字符串a和b,返回0表示相等,返回大于0表示a大于b,返回小于0表示a小于b。

6. `strncmp(const char *a, const char *b, size_t n)`:比较两个字符串a和b的前n个字符,返回0表示相等,返回大于0表示a大于b,返回小于0表示a小于b。

7. `strstr(const char *haystack, const char *needle)`:在字符串haystack中查找字符串needle首次出现的索引,如果未找到则返回NULL。

8. `strtok(const char *token, const char *delim)`:将字符串按照指定的分隔符进行分割,返回分割后的子字符串。

9. `strspn(const char *s, const char *re)`:返回字符串s中匹配子串re的个数。

10. `strpbrk(const char *s, const char *delim)`:返回字符串s中首次出现匹配子串delim的索引,如果未找到则返回NULL。

string.h 函数

string.h 函数

string.h是C 语言标准库中的一个头文件,它包含了处理字符串的函数。

以下是一些在string.h中常见的函数:1.strcpy(): 复制一个字符串到另一个字符串。

c复制代码char *strcpy(char *dest, const char *src);2.strcat(): 将一个字符串附加到另一个字符串的末尾。

c复制代码char *strcat(char *dest, const char *src);3.strlen(): 返回一个字符串的长度(不包括终止字符)。

c复制代码size_t strlen(const char *s);4.strcmp(): 比较两个字符串。

c复制代码int strcmp(const char *s1, const char *s2);5.strchr(): 在字符串中查找第一个出现的指定字符。

c复制代码char *strchr(const char *s, int c);6.strstr(): 在字符串中查找子字符串的首次出现。

c复制代码char *strstr(const char *haystack, const char *needle);7.memcpy(): 从源地址复制指定数量的字节到目标地址。

c复制代码void *memcpy(void *dest, const void *src, size_t n);8.memset(): 将内存区域设置为给定的值。

c复制代码void *memset(void *s, int c, size_t n);9.memmove(): 从源地址复制字节到目标地址,可以处理重叠的内存区域。

c复制代码void *memmove(void *dest, const void *src, size_t n);10.bzero(): 将内存区域设置为零。

这是一个非标准的函数,但在一些旧的代码中可能会看到。

在新的代码中,建议使用memset。

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的连接,返回连接的结果。

string.h中常用函数

string.h中常用函数

string.h中常⽤函数string.h⽂件中函数的详细⽤法 下⾯为string.h⽂件中函数的详细⽤法,附加实例:1、strcpy 函数名: strcpy 功能: 拷贝⼀个字符串到另⼀个 ⽤法: char *strcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) { char string[10]; char *str1 = "abcdefghi"; strcpy(string, str1);printf("%s\n", string); return 0; }2、strcat 函数名: 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; }3、strchr 函数名: 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); else printf("The character was not found\n"); return 0; }4、strcmp 函数名: 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"); 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; }5、strncmpi 函数名: 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; }6、strcpy 函数名: 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; }7、strcspn 函数名: 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; }8、strdup 函数名: strdup 函数名: 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; }9、stricmp 函数名: 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; }10、strerror 函数名: 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; }11、strcmpi 函数名: 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"); else printf("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"); else printf("buffer 2 is less than buffer 3\n"); return(0); }12、strncpy 函数名: 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; }13、strnicmp 函数名: 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; }14、strnset 函数名: strnset 功能: 将⼀个字符串前n个字符都设为指定字符 ⽤法: char *strnset(char *str, char ch, unsigned n); 程序例: #include <stdio.h> #include <string.h> int main(void) { char *string = "abcdefghijklmnopqrstuvwxyz"; 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; }15、strpbrk 函数名: 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); else printf("strpbrk didn't find character in set\n"); return 0; }16、strrchr 函数名: strrchr 功能: 在串中查找指定字符的最后⼀个出现 ⽤法: 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); else printf("The character was not found\n"); return 0; }17、strrev 函数名: 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; }18、strset 函数名: strset 功能: 将⼀个串中的所有字符都设为指定字符 ⽤法: 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; }19、strspn 函数名: 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; }20、strstr 函数名: strstr 功能: 在串中查找指定字符串的第⼀次出现 ⽤法: 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; }21、strtod 函数名: 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; }22、strtok 函数名: strtok 功能: 查找由在第⼆个串中指定的分界符分隔开的单词 ⽤法: char *strtok(char *str1, char *str2); 程序例: #include <string.h> #include <stdio.h> int main(void) { char input[16] = "abc,d"; char *p; /* strtok places a NULL terminator in front of the token, if found */ in front of the token, if found */ p = strtok(input, ","); if (p) printf("%s\n", p); /* A second call to strtok using a NULL as the first parameter returns a pointer to the character following the token */ p = strtok(NULL, ","); if (p) printf("%s\n", p); return 0; }23、strtol 函数名: strtol 功能: 将串转换为长整数 ⽤法: long strtol(char *str, char **endptr, int base); 程序例: #include <stdlib.h> #include <stdio.h> int main(void) { char *string = "87654321", *endptr; long lnumber; /* strtol converts string to long integer */ lnumber = strtol(string, &endptr, 10); printf("string = %s long = %ld\n", string, lnumber); return 0; }24、strupr 函数名: strupr 功能: 将串中的⼩写字母转换为⼤写字母 ⽤法: char *strupr(char *str); 程序例: #include <stdio.h> #include <string.h> int main(void) { char *string = "abcdefghijklmnopqrstuvwxyz", *ptr; /* converts string to upper case characters */ ptr = strupr(string); printf("%s\n", ptr); return 0; }25、swab 函数名: 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; 原型:extern char *strstr(char *haystack, char *needle); *所在头⽂件:#include <string.h> *功能:从字符串haystack中寻找needle第⼀次出现的位置(不⽐较结束符NULL)。

string.h下相关函数介绍

string.h下相关函数介绍

strcat语法:功能:函数将字符串str2连接到str1的末端,并返回指针str1. 例如:printf( "Enter your name: " );scanf( "%s", name );title = strcat( name, " the Great" );printf( "Hello, %s\n", title );相关主题:strchr(), strcmp(), and strcpy().strchr语法:功能:函数返回一个指向str中ch首次出现的位置,当没有在str中找ch到返回NULL。

相关主题:strpbrk(), strspn(), strstr(), and strtok().strcmp语法:功能:比较字符串str1 and str2, 返回值如下:例如:printf( "Enter your name: " );scanf( "%s", name );if( strcmp( name, "Mary" ) == 0 )printf( "Hello, Dr. Mary!\n" );相关主题:memcmp(), strchr(), strcpy(), and strncmp().strcoll语法:功能:比较字符串str1和str2, 很象strcmp. 但是, strcoll() 使用在目前环境中由setlocale()设定的次序进行比较。

strcpy语法:功能:复制字符串from中的字符到字符串to,包括空值结束符。

返回值为指针to。

相关主题:memcpy(), strchr(), strcmp(), strncmp(), and strncpy().strcspn语法:功能:函数返回str1开头连续n个字符都不含字符串str2内字符的字符数。

C语言常用库

C语言常用库

C语言常用库C语言是一种通用的编程语言,广泛应用于系统软件的开发和嵌入式系统的编程。

它提供了丰富的库函数,用于实现各种功能。

本文将介绍一些常用的C语言库,帮助读者深入了解和应用这些库函数。

一、stdio.h库stdio.h库是C语言中最常用的库之一,主要用于输入和输出操作。

它提供了一系列函数,例如printf()用于格式化输出,scanf()用于格式化输入,fgets()用于读取一行字符串等。

这些函数能够方便地进行输入输出操作,是C语言常用的基础函数库。

二、stdlib.h库stdlib.h库是C语言中的标准库之一,提供了一些常用的函数,用于实现内存管理、随机数生成、字符串转换等功能。

例如,malloc()用于动态分配内存,free()用于释放动态分配的内存,rand()用于生成随机数,atoi()用于字符串转整数等。

这些函数能够提高代码的灵活性和可读性,方便进行复杂的计算和运算。

三、string.h库string.h库是C语言中用于处理字符串的库,提供了一些常用的字符串操作函数。

例如,strcpy()用于复制字符串,strlen()用于获取字符串长度,strcat()用于连接字符串等。

这些函数能够方便地进行字符串处理,执行字符串的查找、替换和比较等操作。

四、math.h库math.h库是C语言中用于数学计算的库,提供了一些常用的数学函数。

例如,sqrt()用于求平方根,pow()用于计算幂次方,sin()用于计算正弦值等。

这些函数能够方便地进行数学运算,满足复杂的计算需求。

五、time.h库time.h库是C语言中用于时间和日期操作的库,提供了一些常用的时间相关函数。

例如,time()用于获取当前时间,ctime()用于将时间转换为字符串,difftime()用于计算时间差等。

这些函数能够方便地获取系统时间、进行时间的转换和计算。

六、ctype.h库ctype.h库是C语言中用于字符处理的库,提供了一些常用的字符操作函数。

string.h函数

string.h函数

`string.h` 是C 语言标准库中的一个头文件,它包含了一系列用于处理字符串的函数。

下面是一些常用的`string.h` 函数:1. `strlen(s)`: 返回字符串 `s` 的长度,不包括终止字符 `\0`。

2. `strcpy(dest, src)`: 将字符串 `src` 复制到字符串 `dest`。

3. `strcat(dest, src)`: 将字符串 `src` 追加到字符串 `dest` 的末尾。

4. `strcmp(s1, s2)`: 比较字符串 `s1` 和 `s2`。

如果它们相等,则返回 0;如果 `s1` 在字典中位于 `s2` 之前,则返回一个负值;如果 `s1` 在字典中位于 `s2` 之后,则返回一个正值。

5. `strchr(s, c)`: 在字符串 `s` 中查找字符 `c` 的第一次出现。

6. `strstr(s1, s2)`: 在字符串`s1` 中查找子字符串 `s2` 的第一次出现。

7. `strcspn(s, accept)`: 在字符串 `s` 中查找第一个不属于集合`accept` 的字符的位置。

8. `strpbrk(s, accept)`: 在字符串`s` 中查找第一个属于集合`accept` 的字符的位置。

9. `strtok(s, delimiters)`: 将字符串 `s` 分割成子字符串,使用指定的分隔符字符集 `delimiters`。

10. `strtol(s, endptr, base)`: 将字符串`s` 转换为长整型数,其中 `endptr` 指向转换后的字符串中的第一个非数字字符,`base` 指定转换的基数(2-36)。

11. `strtoul(s, endptr, base)`: 将字符串 `s` 转换为无符号长整型数。

这些函数提供了基本的字符串操作功能,包括复制、比较、查找、分割和转换等。

请注意,在使用这些函数时,应确保目标字符串有足够的空间来存储结果,以避免缓冲区溢出等安全问题。

c语言中string.h用法

c语言中string.h用法

在C语言中,`string.h`头文件包含了一系列处理字符串的函数。

以下是一些常用的`string.h`函数及其用法:1. **strlen() - 计算字符串长度**```c#include <string.h>size_t strlen(const char *str);```示例:```cconst char *myString = "Hello, World!";size_t length = strlen(myString);printf("String length: %zu\n", length);```2. **strcpy() - 复制字符串**```c#include <string.h>char *strcpy(char *dest, const char *src);```示例:```cchar destination[20];const char *source = "Copy me!";strcpy(destination, source);printf("Copied string: %s\n", destination); ```3. **strcat() - 拼接字符串**```c#include <string.h>char *strcat(char *dest, const char *src); ```示例:```cchar str1[20] = "Hello, ";const char *str2 = "World!";strcat(str1, str2);printf("Concatenated string: %s\n", str1); ```4. **strcmp() - 比较字符串**```c#include <string.h>int strcmp(const char *str1, const char *str2); ```示例:```cconst char *s1 = "apple";const char *s2 = "orange";int result = strcmp(s1, s2);if (result == 0) {printf("Strings are equal.\n");} else if (result < 0) {printf("s1 is less than s2.\n");} else {printf("s1 is greater than s2.\n");}```5. **strncmp() - 指定长度比较字符串**```c#include <string.h>int strncmp(const char *str1, const char *str2, size_t n);```示例:```cconst char *s1 = "apple";const char *s2 = "apples";int result = strncmp(s1, s2, 5); // 比较前五个字符```6. **strchr() - 在字符串中查找字符**```c#include <string.h>char *strchr(const char *str, int c);```示例:```cconst char *myString = "Hello, World!";char *result = strchr(myString, 'W');if (result != NULL) {printf("Found at position: %ld\n", result - myString);} else {printf("Character not found.\n");}```7. **strstr() - 在字符串中查找子串**```c#include <string.h>char *strstr(const char *haystack, const char *needle); ```示例:```cconst char *text = "This is a simple example.";const char *pattern = "simple";char *result = strstr(text, pattern);if (result != NULL) {printf("Substring found at position: %ld\n", result - text);} else {printf("Substring not found.\n");}```这只是`string.h`头文件中一些常用函数的简要介绍。

转载:CC++关于string.h头文件和string类

转载:CC++关于string.h头文件和string类

转载:CC++关于string.h头⽂件和string类学习C语⾔时,⽤字符串的函数例如stpcpy()、strcat()、strcmp()等,要包含头⽂件string.h 学习C++后,C++有字符串的标准类string,string 类也有很多⽅法,⽤string类时要⽤到string.h头⽂件。

我现在看vc的书上也有CString类,这个要包含什么,怎么⽤?我现在很迷惑,这两个 string.h有什么区别。

是怎么回事且看⼀:这两个⼀个是标准C库的,定义了⼀些字符串的处理函数.⼀个是标准C++库的,定义了标准C++的std::string类. 要⽤这个类要包含头⽂件<string>...如下; #include <string> using namespace std;//关于名字空间有兴趣⾃⼰查去,⼀般⽤标准库这句就⾏了当然标准C库也是标准C++库的⼀部分,要⽤标准C库⾥的处理函数...如下: #include <string.h>//所以你⽤这句包含的是标准C库的头⽂件 ...或者⽤如下C++风格的,它们是等价的,不过⽐较推荐: #include <cstring> using namespace std;CString类是MFC的类,...不搞Windows MFC编程⽤不到且看⼆:#include < string .h >void main() {string aaa = " abcsd d " ;printf( " looking for abc from abcdecd %s/n " , (strcmp(aaa, " abc " )) ? " Found " : " Not Found " );} 不能正确执⾏,提⽰说是string类型没有定义 ⽽下⾯:#include < string >using namespace std; void main(){ string aaa = " abcsd d " ;printf( " looking for abc from abcdecd %s/n " , (strcmp(aaa, " abc " )) ? " Found " : " Not Found " ); } 这⾥的string编译器就认识了,但是strcmp就不认识了呢? ⼀般⼀个C++的⽼的带“。

string.h截取字符串用法

string.h截取字符串用法

string.h截取字符串用法
在C语言中,可以使用string.h头文件中的函数来截取字符串。

具体来说,可以使用strncpy()函数来实现字符串的截取。

strncpy()函数的原型如下:
c.
char strncpy(char dest, const char src, size_t n);
这个函数将源字符串src的前n个字符复制到目标字符串dest 中。

如果源字符串的长度小于n,那么目标字符串将用空字符进行
填充以保证总共复制了n个字符。

如果源字符串的长度大于或等于n,那么目标字符串将不会以空字符结尾。

需要注意的是,strncpy()并不会在目标字符串的末尾添加空字符,因此需要手动添加以保证
目标字符串的完整性。

另外,还可以使用strcpy()函数和strcat()函数来实现字符串
的截取。

strcpy()函数用于将一个字符串复制到另一个字符串中,
而strcat()函数用于将一个字符串追加到另一个字符串的末尾。

除了上述函数之外,还可以使用指针来实现字符串的截取。


过移动指针并逐个复制字符,可以实现对字符串的截取操作。

总的来说,通过使用string.h头文件中的函数,结合指针操作,可以灵活地实现字符串的截取操作。

在实际使用中,需要根据具体
的需求选择合适的方法来进行字符串的截取。

C语言中常用的string.h的字符函数

C语言中常用的string.h的字符函数

C语⾔中常⽤的string.h的字符函数strcmp字符串⽐较函数原型:int strcmp(char *str1, char *str2);例⼦:if(strcmp(buf1,buf2)>0) printf("buffer 1 is greater than buffer 2.\n");str1>str2,返回值 > 0(⼀般返回1),两串相等,返回0strlen字符串长度函数原型:int strlen(const char *s);例⼦:char *buf1="haha"; len=strlen(buf1); //len=4strstr查找字符串str2在str1第⼀次出现的位置原型:char *strstr(char *str1, char *str2);例⼦:char *str1 = "She is prrety", *str2 = "he", *ptr;ptr = strstr(str1, str2);printf("The substring is: %s\n", ptr);printf("The position is:%d\n",ptr-str1);//输出://The substring is: he is prrety//The position is:1strcpy拷贝字符串原型:char *strcpy(char *destin, char *source);例⼦:char string[10];char *str1 = "abcdefghi";strcpy(string, str1);printf("%s\n", string);//输出://abcdefghistrncpystrncpy(string, str1,3);//string=str1的前三个字符strcat字符串拼接函数原型:char *strcat(char *destin, char *source);例⼦:char str[25];char *str1 ="I am", *str2 = " Lucy.";strcpy(str,str1); //先复制str1的内容strcat(str,str2); //再接上str2的内容printf("%s\n", str);//输出//I am Lucy.要注意的是,strcat的第⼀个参数只能是str这样定义的数组,不能是指针str1 strchr查找字符在字符串的位置原型:char *strchr(char *str, char c);例⼦:char string[15]="BUPT";char *ptr, c = 'U';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");//输出://The character %c is at position: 1。

string.h头文件函数说明

string.h头文件函数说明

头文件:<string.h>1、strcat原型:extern char *strcat(char *dest,char *src);功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回:返回指向dest的指针。

2、strncat原型:char * strncat(char *dest, const char *src, size_t n);//dest指向目标字符串,src为指向源字符串。

功能:把src所指字符串的前n个字符添加到dest所指字符串的结尾处,并覆盖dest所指字符串结尾的'\0',从而实现字符串的连接。

说明:src和dest所指内存区域不可以重叠,并且dest必须有足够的空间来容纳src的字符串。

返回:返回指向dest的指针。

3、4、memcmp原型:intmemcmp(const void *buf1, const void *buf2, unsigned int count);功能:比较内存区域buf1和buf2的前count个字节。

说明:该函数是按字节比较的。

返回:当buf1<buf2时,返回值-1;当buf1==buf2时,返回值=0;当buf1>buf2时,返回值1。

5、memcpy原型:void *memcpy(void *dest, const void *src, size_t n);功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中说明:1.source和destin所指的内存区域可能重叠,但是如果source和destin所指的内存区域重叠,那么这个函数并不能够确保source所在重叠区域在拷贝之前不被覆盖。

而使用memmove可以用来处理重叠区域。

C语言string.h中的字符串函数

C语言string.h中的字符串函数

C语⾔string.h中的字符串函数C语⾔标准库头⽂件 <string.h> 定义了⼀个变量类型、⼀个宏和两组字符串函数,⼀组函数的名字以str开头,还有⼀组函数的名字以mem开头。

1、⼀个变量类型size_t:⽆符号整型(unsigned int),是sizeof操作符返回的结果类型,在64位系统中为 long unsigned int。

代码⽰例运⾏结果其中,%zu ⽤来输出 size_t 类型。

2、⼀个宏NULL:空指针常量的值3、以str开头的函数size_t strlen(const char *str)计算字符串 str 的长度,直到空结束字符'',不包括空结束字符。

char *strcpy(char *dest, const char *src)把 src 所指向的字符串复制到 dest。

char *strncpy(char *dest, const char *src, size_t n)同上,把 src 所指向的字符串的前n个字符复制到 dest。

char *strcat(char *dest, const char *src)把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,实现字符串的连接。

char *strncat(char *dest, const char *src, size_t n)同上,把src所指字符串的前n个字符添加到dest所指字符串的结尾处,并覆盖dest所指字符串结尾的'',实现字符串的连接。

char *strchr(const char *str, int c)在参数 str 所指向的字符串中搜索第⼀次出现字符 c(⽆符号字符)的位置,如果str中没有c,则返回NULL。

char *strrchr(const char *str, int c)在参数 str 所指向的字符串中搜索最后⼀次出现字符 c(⽆符号字符)的位置,如果str中没有c,则返回NULL。

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

string.h中的函数@函数名称: strdup函数原型: 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;}@函数名称: strncat函数原型: 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;}@函数名称: strcmp函数原型: 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");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;}@函数名称: 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");elseprintf("buffer 2 is less than buffer 1");ptr=strncmp(buf2,buf3,3);if (ptr>0)printf("buffer 2 is greater than buffer 3");elseprintf("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 not found\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 at position:%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被破坏了函数会记忆指针位置以供下一次调用所属文件: <string.h>#include <string.h>#include <stdio.h>int main(){char *p;char *buffer;char *delims={ " .," };buffer=strdup("Find words, all of them.");printf("%s\n",buffer);p=strtok(buffer,delims);while(p!=NULL){printf("word: %s\n",p);p=strtok(NULL,delims);}printf("%s\n",buffer);return 0;}@函数名称: strupr函数原型: char *strupr(char *s)函数功能: 将字符串s中的字符变为大写函数返回:参数说明:所属文件: <string.h>#include <stdio.h>#include <string.h>int main(){char *string="abcdefghijklmnopqrstuvwxyz",*ptr; ptr=strupr(string);printf("%s",ptr);return 0;}@函数名称: strlwr函数原型: char *strlwr(char *s)函数功能: 将字符串中的字符变为小写字符函数返回: 指向s的指针参数说明:所属文件: <string.h>#include<string.h>int main(){char str[]="HOW TO SAY?";printf("%s",strlwr(str));return 0;}@函数名称: strlen函数原型: unsigned int strlen(char * str);函数功能: 统计字符串str中字符的个数(不包括终止符'\0') 函数返回: 返回字符串的长度.参数说明:所属文件: <string.h>#include <stdio.h>#include<string.h>int main(){char str[]="how are you!";printf("the lence is:%d\n",strlen(str));return 0;}@函数名称: strerror函数原型: char *strerror(int errnum)函数功能: 得到错误信息的内容信息函数返回: 错误提示信息字符串指针参数说明: errnum-错误编号所属文件: <string.h>#include <stdio.h>#include <errno.h>int main(){char *buffer;buffer=strerror(errno);printf("Error: %s",buffer);return 0;}@函数名称: memcpy函数原型: void *memcpy(void *dest, const void *src, size_t n)函数功能: 字符串拷贝函数返回: 指向dest的指针参数说明: src-源字符串,n-拷贝的最大长度所属文件: <string.h>,<mem.h>#include <stdio.h>#include <string.h>int main(){char src[]="******************************";char dest[]="abcdefghijlkmnopqrstuvwxyz0123456709";char *ptr;printf("destination before memcpy:%s\n",dest);ptr=memcpy(dest,src,strlen(src));if (ptr)printf("destination after memcpy:%s\n",dest);elseprintf("memcpy failed");return 0;}@函数名称: memccpy函数原型: void *memccpy(void *dest, const void *src, int c, size_t n)函数功能: 字符串拷贝,到指定长度或遇到指定字符时停止拷贝函数返回:参数说明: src-源字符串指针,c-中止拷贝检查字符,n-长度,dest-拷贝底目的字符串指针所属文件: <string.h>,<mem.h>#include <string.h>#include <stdio.h>int main(){char *src="This is the source string";char dest[50];char *ptr;ptr=memccpy(dest,src,'c',strlen(src));if (ptr){*ptr='\0';printf("The character was found:%s",dest);}elseprintf("The character wasn't found");return 0;}@函数名称: memchr函数原型: void *memchr(const void *s, int c, size_t n)函数功能: 在字符串中第开始n个字符中寻找某个字符c的位置函数返回: 返回c的位置指针,返回NULL时表示未找到参数说明: s-要搜索的字符串,c-要寻找的字符,n-指定长度所属文件: <string.h>,<mem.h>#include <string.h>#include <stdio.h>int main(){char str[17];char *ptr;strcpy(str,"This is a string");ptr=memchr(str,'r',strlen(str));if (ptr)printf("The character 'r' is at position: %d",ptr-str);elseprintf("The character was not found");return 0;}@函数名称: memcmp函数原型: int memcmp(const void *s1, const void *s2,size_t n) 函数功能: 按字典顺序比较两个串s1和s2的前n个字节函数返回: <0,=0,>0分别表示s1<,=,>s2参数说明: s1,s2-要比较的字符串,n-比较的长度所属文件: <string.h>,<mem.h>#include <stdio.h>#include <string.h>int main(){char *buf1="ABCDE123";char *buf2="abcde456";int stat;stat=memcmp(buf1,buf2,5);printf("The strings to position 5 are ");if(stat) printf("not ");printf("the same\n");return 0;}@函数名称: memicmp函数原型: int memicmp(const void *s1, const void *s2, size_t n) 函数功能: 按字典顺序、不考虑字母大小写对字符串s1,s2前n个字符比较函数返回: <0,=0,>0分别表示s1<,=,>s2参数说明: s1,s2-要比较的字符串,n-比较的长度所属文件: <string.h>,<mem.h>#include <stdio.h>#include <string.h>int main(){char *buf1="ABCDE123";char *buf2="abcde456";int stat;stat=memicmp(buf1,buf2,5);printf("The strings to position 5 are ");if(stat) printf("not");printf("the same");return 0;}@函数名称: memmove函数原型: void *memmove(void *dest, const void *src, size_t n) 函数功能: 字符串拷贝函数返回: 指向dest的指针参数说明: src-源字符串,n-拷贝的最大长度所属文件: <string.h>,<mem.h>#include <string.h>#include <stdio.h>int main(){char dest[40]="abcdefghijklmnopqrstuvwxyz0123456789";printf("destination prior to memmove:%s\n",dest); memmove(dest+1,dest,35);printf("destination after memmove:%s",dest); return 0;}@函数名称: memset函数原型: void *memset(void *s, int c, size_t n)函数功能: 字符串中的n个字节内容设置为c函数返回:参数说明: s-要设置的字符串,c-设置的内容,n-长度所属文件: <string.h>,<mem.h>#include <string.h>#include <stdio.h>#include <mem.h>int main(){char buffer[]="Hello world";printf("Buffer before memset:%s\n",buffer); memset(buffer,'*',strlen(buffer)-1);printf("Buffer after memset:%s",buffer);return 0;}。

相关文档
最新文档