标准库字符串函数(超详细)

合集下载

标准库函数库 使用方法

标准库函数库 使用方法

标准库函数库使用方法1. abs(): 返回一个数的绝对值。

2. atoi(): 将一个字符串转换为整数。

3. atof(): 将一个字符串转换为浮点数。

4. strcmp(): 比较两个字符串。

5. strcpy(): 将一个字符串复制到另一个字符串。

6. strlen(): 返回一个字符串的长度。

7. strcat(): 将两个字符串连接起来。

8. strchr(): 在一个字符串中查找指定字符的第一次出现。

9. strstr(): 在一个字符串中查找指定子字符串的第一次出现。

10. sprintf(): 将格式化的数据写入一个字符串。

11. fopen(): 打开一个文件。

12. fclose(): 关闭一个文件。

13. fprintf(): 将格式化的数据写入一个文件。

14. fgets(): 从文件中读取一行字符串。

15. fread(): 从文件中读取一定数量的数据。

16. fwrite(): 将一定数量的数据写入文件。

17. fseek(): 设置文件指针的位置。

18. ftell(): 获取文件指针的当前位置。

19. feof(): 检查文件指针是否已到达文件末尾。

20. malloc(): 分配一块指定大小的内存。

21. free(): 释放先前分配的内存。

22. memset(): 将内存中的一块区域设置为指定的值。

23. memcpy(): 将一块内存中的数据复制到另一块内存中。

24. rand(): 返回一个随机数。

25. srand(): 设置随机数种子。

26. time(): 返回当前时间。

27. localtime(): 转换时间戳为本地时间。

28. printf(): 格式化输出数据到控制台。

29. scanf(): 从控制台读取输入数据。

30. getchar(): 从控制台读取单个字符。

31. putchar(): 将一个字符输出到控制台。

32. isalpha(): 检查一个字符是否为字母。

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 标准库函数大全

c 标准库函数大全

c 标准库函数大全C标准库函数大全。

C标准库是C语言中非常重要的一部分,它包含了许多常用的函数,可以帮助程序员更加高效地完成各种任务。

在本文中,我们将介绍C标准库中一些常用的函数,希望能够帮助大家更好地理解和应用C语言。

1. 输入输出函数。

C标准库中最基本的函数之一就是输入输出函数。

其中,printf函数用于输出格式化的数据,而scanf函数则用于从标准输入设备中读取格式化的数据。

这两个函数是C语言中最常用的函数之一,也是我们编写程序时经常会用到的函数。

2. 字符串处理函数。

C标准库中还包含了许多用于处理字符串的函数,比如strlen函数可以用来计算字符串的长度,strcpy函数可以用来复制字符串,strcat函数可以用来连接两个字符串等等。

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

3. 内存管理函数。

在C语言中,内存管理是一个非常重要的问题。

C标准库中提供了一些函数来帮助我们更好地管理内存,比如malloc函数可以用来动态分配内存,free函数可以用来释放内存,memset函数可以用来初始化内存等等。

这些函数可以帮助我们更好地利用内存,避免内存泄漏等问题。

4. 数学函数。

C标准库中还包含了许多数学函数,比如sin函数可以用来计算正弦值,cos函数可以用来计算余弦值,sqrt函数可以用来计算平方根等等。

这些函数可以帮助我们更好地完成各种数学运算,提高程序的准确性和效率。

5. 时间和日期函数。

在C标准库中,还包含了一些用于处理时间和日期的函数,比如time函数可以用来获取当前的系统时间,asctime函数可以用来将时间转换为字符串,difftime 函数可以用来计算时间差等等。

这些函数可以帮助我们更好地处理时间和日期相关的问题,提高程序的实用性和可靠性。

总结: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语言字符串转换为数字的库函数

c语言字符串转换为数字的库函数

在C语言中,可以使用标准库函数`atoi()`、`atof()`和`strtol()`来将字符串转换为数字。

这些函数的详细说明如下:1. `atoi()`:将字符串转换为整数。

函数原型为:```cint atoi(const char *str);```例如:```cconst char *str = "123";int num = atoi(str); // 将字符串"123"转换为整数123```2. `atof()`:将字符串转换为浮点数。

函数原型为:```cdouble atof(const char *str);```例如:```cconst char *str = "3.14";double num = atof(str); // 将字符串"3.14"转换为浮点数3.14```3. `strtol()`:将字符串转换为长整数。

函数原型为:```clong int strtol(const char *str, char **endptr, int base);```这个函数可以将字符串按指定的进制进行转换,同时可以获取转换后剩余的未转换部分的指针。

例如:```cconst char *str = "101010";char *endptr;long int num = strtol(str, &endptr, 2); // 将字符串"101010"按二进制转换为长整数42```在上述示例中,`endptr`指针会指向字符串中未转换的部分,即`"10"`。

需要注意的是,这些函数并不会进行严格的错误检查,如果字符串无法转换为数字,它们会返回一个默认值。

因此,在使用这些函数时要确保输入的字符串是合法的。

C语言常用标准库函数

C语言常用标准库函数

C语⾔常⽤标准库函数数学函数:在math.h中abs(x) :求整型数x的绝对值cos(x):x(弧度)的余弦fabs(x):求浮点数x的绝对值ceil(x):求不⼩于x的最⼩整数floor(x):求不⼤于x的最⼩整数log(x):求x的⾃然对数log10(x):求x的对数(底为10)pow(x,y):求x的y次⽅sin(x):求x(弧度)的正弦sqrt(x):求x的平⽅根字符处理函数:在ctype.h中声明int isdigit(int c):判断是否是数字字符int isalpha(int c):判断是否是⼀个字母int isalnum(int c):判断是否是⼀个数字或字母int islower(int c):判断是否是⼀个⼩写字母int isupper(int c):判断是否是⼀个⼤写字母int toupper(int c):转换成⼤写字母int tolower(int c):转换成⼩写字母字符串处理和内存操作函数声明于string.h中char *strchr(char *s,int c):如果s中包含字符c,则返回⼀个指向s第⼀次出现的该字符的指针,否则返回NULLchar *strstr(char *s1,char *s2):如果s2是s1的⼀个⼦串,则返回⼀个指向s1中⾸次出现s2的位置的指针,否则返回NULLchar *strlwr(char *s):将s中的字母都变成⼩写cahr *strupr(char *s):将s中的字母都变成⼤写char *strcpy(char *s1,char *s2):将字符串s2的内容复制到s1中去char *strncpy(char *s1,char *s2,int n):将字符串s2的内容复制到s1中去,但是最多复制n个字节,如果复制字节数达到n,那么就不会往s1中写⼊结尾的'\0'char *strcat(cahr *s1,char *s2):将字符串s2添加到s1末尾int strcmp(char *s1,char *s2):⽐较两个字符串,⼤⼩写相关int stricmp(char *s1,char *s2):⽐较两个字符串,⼤⼩写⽆关int strlen(const char *string):计算字符串的长度int strncmp(const char *string1,const char *string2,size_t count):分别取两个字符串的前count个字符作为字符串,⽐较他们的⼤⼩char *strrev(char *string):将字符串string前后颠倒void *memcpy(void *s1,void *s2,int n):将内存地址s2处的n个字节内容复制到内存地址s1void *memset(void *s,int c,int n):将内存地址s开始的n个字节全部置为c不过只能赋制为0,1fill(a,a+n,c):能够赋值为任意值字符串转换函数:定义在stdlib.h中int atoi(char *s):将字符串s转换为整型数double atof(char *s):将字符串s⾥的内容转换为浮点数char * itoa(int value,char *string,int radix):将整型值value以radix进制表⽰法写⼊string。

c语言标准库函数大全

c语言标准库函数大全

c语言标准库函数大全C语言标准库函数大全。

C语言标准库函数是C语言程序设计中不可或缺的一部分,它包含了丰富的函数,可以帮助程序员完成各种任务,从输入输出到内存管理、字符串处理等。

本文将为大家详细介绍C语言标准库中常用的函数,希望能够帮助大家更好地理解和运用这些函数。

1. 输入输出函数。

输入输出函数是C语言程序设计中最基本的部分,它们可以帮助我们与用户进行交互,从而实现程序的输入和输出。

其中,printf和scanf是最常用的两个函数,它们分别用于输出和输入数据。

除此之外,还有一些其他的输入输出函数,如puts、gets、putc、getc等,它们分别用于输出字符串、输入字符串等操作。

2. 字符串处理函数。

在C语言标准库中,有许多用于处理字符串的函数,如strlen、strcpy、strcat、strcmp等。

这些函数可以帮助我们对字符串进行各种操作,比如计算字符串的长度、复制字符串、拼接字符串、比较字符串等。

字符串处理函数在实际的程序设计中非常常用,它们可以帮助我们高效地处理字符串数据。

3. 数学函数。

C语言标准库中还包含了丰富的数学函数,如sin、cos、tan、sqrt、pow等。

这些函数可以帮助我们进行各种数学运算,比如三角函数运算、开方运算、幂运算等。

数学函数在科学计算和工程计算中非常重要,它们可以帮助我们实现各种复杂的数学运算。

4. 内存管理函数。

内存管理函数是C语言程序设计中不可或缺的一部分,它们可以帮助我们对内存进行分配和释放。

其中,malloc和free是最常用的两个函数,它们分别用于分配和释放内存。

除此之外,还有一些其他的内存管理函数,如calloc、realloc等,它们分别用于分配多块内存、重新分配内存等操作。

5. 时间日期函数。

C语言标准库中还包含了一些用于处理时间日期的函数,如time、localtime、strftime等。

这些函数可以帮助我们获取当前的系统时间、将时间转换为字符串等操作。

string标准库函数

string标准库函数

string标准库函数在C++中,std::string库提供了许多用于处理字符串的函数。

以下是一些常用的函数:1、构造函数:std::string(): 默认构造函数,创建一个空字符串。

std::string(const char*): 从C风格的字符串创建字符串。

std::string(const std::string&): 复制构造函数。

2、赋值操作:operator=: 赋值操作符。

3、访问和修改:at(int n): 访问指定位置的字符。

operator[] 或 operator(): 访问或修改指定位置的字符。

front(): 返回第一个字符。

back(): 返回最后一个字符。

c_str(): 返回指向一个C风格的字符串的指针。

4、长度和容量:size(): 返回字符串的长度。

max_size(): 返回字符串的最大可能长度。

empty(): 检查字符串是否为空。

5、插入和删除:insert(int pos, const std::string& str): 在指定位置插入字符串。

erase(int pos, int len): 删除指定位置和长度的字符。

6、连接:operator+: 连接两个字符串。

append(const std::string& str): 在末尾添加字符串。

7、比较:operator==, operator!=, <, >, <=, >=: 比较两个字符串。

8、查找:find(char c, int pos): 查找字符的位置。

find(const std::string& str, int pos): 查找字符串的位置。

9、修改:replace(int pos, int len, const std::string& str): 在指定位置和长度处替换字符串。

10、分割和合并:split(char delimiter): 根据给定的分隔符分割字符串。

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

C语言字符串处理的库函数使用C语言字符串处理的库函数,务必包含头文件string.h,即#include <string.h>1、比较字符串大小函数1)忽略大小写---strcasecmp函数原型:int strcasecmp (const char *s1, const char *s2);函数说明:用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异2)忽略大小写—stricmp函数原型:int stricmp(char *str1, char *str2);函数说明:以大小写不敏感方式比较两个串3)不忽略大小写—strcmp函数原型:int strcmp(char*str1,char*str2);函数说明:通过比较字串中各个字符的ASCII码,来比较参数Str1和Str2字符串,比较时考虑字符的大小写。

4)比较一部分—strncmpi函数原型:int strncmpi(char *str1, char *str2, unsigned maxlen);函数说明:比较字符串str1和str2的前maxlen个字符5)内存区域比较---memcmp函数原型:int memcmp(void*buf1,void *buf2,unsigned int count)函数说明:比较内存区域buf1和buf2的前count个字节。

Void*是指任何类型的指针。

6)内存区域部分比较-- memicmp Void*是指任何类型的指针。

函数原型:int memicmp(void*buf1,void *buf2,unsigned int count)函数说明:比较内存区域buf1和buf2的前count个字节,但不区分大小写。

以上比较函数的返回值:若参数1中字符串和参数中2字符串相同则返回0;若参数1中字符串长度大于参数2中字符串长度则返回大于0 的值;若参数1中字符串长度小于参数2中字符串长度则返回小于0的值。

2、从字符串中提取子串1)提取子串--strstr函数原型:char* strstr(char*src,char*find)函数说明:从字符串src中寻找find第一次出现的位置(不比较结束符NULL)返回值:返回指向第一次出现find位置的指针,如果没有找到则返回NULL2)提取分隔符间字串—strtok函数原型:char *strtok(char*src,char*delim);函数说明:分解字符串诶一组标记串,src为要分解的字符串,delim为分隔符字符串。

首次调用时,src必须指向要分解的字符串,随后调用要把s设成NULL;strtok中src中查找包含在delim中的字符,并用NULL(’\0’)来替换直到找遍整个字符串。

返回值:从s开头开始的一个个被分割的串。

当没有被分割的串时则返回NULL。

所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

举例:#include <string.h>#include <stdio.h>int main(){char *s="Golden Global View";char *d=" ";char *p;p=strtok(s,d);while(p){printf("%s\n",p);strtok(NULL,d);}return 0;}输出:GoldenGlobalView3、字符串复制1) 字串复制--strcpy函数原型:char*strcpy(char*dest,char*src)函数说明:把src所指由NULL结束的字符串复制到dest所指的数组中。

其中,src和dest所致内存区域不可重叠且dest必须有足够的空间来容纳src的字符串。

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

2)字串复制--strdup函数原型:char* strdup(char*src)函数说明:复制字符串src返回值:返回指向被复制字符串的指针,所需空间有malloc()分配且可以有free()释放。

3)内存空间复制--memcpy函数原型:void *memcpy(void *dest,void *src,unsigned int count);函数说明:src和dest 所指内存区域不能重叠;由src所致内存区域复制count个字节到dest所指内存区域中。

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

4、字符串连接1)接尾连接--strcat函数原型:char* strcat(char*dest,char*src)函数说明:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'2)部分连接--strncat函数原型:char* strncat(char*dest,char*src,int n);函数说明:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的’\0’)并添加’’\0’.返回值:返回指向dest的指针。

5、从字符串中查找字符1)内存区域找字符--memchr函数原型:void *memchr(void*buf,char ch,usigned count)函数说明:从buf所指内存区域的前count个字节查找字符ch,当第一次遇到字符ch时停止查找。

返回值:如果找到了,返回指向字符ch的指针;否则返回NULL2)字串中找字符--strchr函数原型:char* strchr(char*src,char ch)函数说明:查找字符串s中首次出现字符ch的位置返回值:返回首次出现c的位置的指针,如果s中不存在c则返回NULL3)搜所现字符--strcspn函数原型:int strcspn(char*src,char*find)函数说明:在字符串src中搜寻find中所出现的字符返回值:返回第一个出现的字符在src中的下标值,即src中出现而不在find中出现的字串的长度。

举例:#include <string.h>#include <stdio.h>int main(){char *s="Golden Global View";char *r="new";int n;n=strcspn(s,r);printf("The first char both in s1 and s2 is: %c",s[n]);return 0;}输出:The first char both in s1 and s2 is :e4)匹配任一字符--strpbrk函数原型:char*strpbrk(char*s1,char*s2)函数说明:在字符串S1中寻找字符串S2中任何一个字符相匹配的第一个字符的位置,空字符不包括在内。

返回值:返回指向S1中第一个相匹配的字符的指针,如果没有匹配字符则返回空指针。

举例:#include <stdio.h>#include <string.h>int main(){char *s1="Welcome To Beijing";char *s2="BIT";char *p;p=strpbrk(s1,s2);if(p)printf("%s\n",p);else printf("Not Found!\n");return 0;}输出:To Beijing6、其他函数1)全部转成大写---strupr函数原型:char*strupr(char*src)函数说明:将字符串src转换成大写形式,只转换src中出现的小写字母,不改变其他字符返回值:返回指向src的指针。

2)全部转成小写---strlwr函数原型:char*strlwr(char*src)函数说明:将字符串src转换成小写形式,只转换src中出现的大写字母,不改变其他字符返回值:返回指向src的指针。

3)将字串逆向--strrev函数原型:char*strrev(char*src)函数说明:把字符串src的所有字符的顺序颠倒过来(不包括NULL)返回值:返回指向颠倒顺序后的字符串指针memset与memcpy函数使用详细说明1. void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间s 的首n 个字节的值设为值c。

2. 例子#i ncludemain(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar();return 0;}3. memset() 函数常用于内存空间初始化。

如:char str[100];memset(str,0,100);4. memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘\0’;例:char a[100];memset(a, '\0', sizeof(a));memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50];memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。

strcpy就只能拷贝字符串了,它遇到'\0'就结束拷贝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘\0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。

5.补充:某人的一点心得memset可以方便的清空一个结构类型的变量或数组。

如:struct sample_struct{char csName[16];int iSeq;int iType;};对于变量struct sample_strcut stTest;一般情况下,清空stTest的方法:stTest.csName[0]='\0';stTest.iSeq=0;stTest.iType=0;用memset就非常方便:memset(&stTest,0,sizeof(struct sample_struct));如果是数组:struct sample_struct TEST[10];则memset(TEST,0,sizeof(struct sample_struct)*10);6. strcpy原型:extern char *strcpy(char *dest,char *src);用法:#i nclude功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

相关文档
最新文档