常用字符串库函数总结

  • Post author:
  • Post category:其他


本文转自

https://blog.csdn.net/sharon_1987/article/details/50022855

本文与原文内容没有差别,但是由于本人比较注重颜值还有阅读体验(自认为这样可能阅读起来会舒服点),就…又给排版了一下,也算参与博客创作了(重在参与重在参与);

本文主要是粗略的介绍了各个字符库函数的

大致用法

,总结感觉也挺详细,就分享给诸位,有许多说明不明确,如果相要详细理解,可以在博客搜索,后续有些可能我可能也会写博客总结,到时候会附上链接,有些可能会存在错误,望大佬们指出;

一:字符处理库函数,头文件

#inlcude<ctype.h>


1)isdight;


(1)函数原型:int isdight (char c);

(2)描述:如果c是一个 数字,返回一个真值,否则返回0(假)。


2)isalphs;


(1)函数原型:int isalpha(char c);

(2)描述:如果c是一个 字母,返回一个真值,否则返回0(假)。


3)isalnum;


(1)函数原型:int isalnum(char c);

(2)描述:如果c是一个 字母 或 数字,返回一个真值,否则返回0(假)。


4)isxdigit;


(1)函数原型:int isxdigit(char c);

(2)描述:如果c是一个 十六进制数字字符,返回一个真值,否则返回0


5)islower;


(1)函数原型:int islower (int c);

(2)描述:如果c是一个 小写字母,返回一个真值,否则返回0(假)。


6)isupper;


(1)函数原型:int isupper(char c);

(2)描述:如果c是一个 大写字母,返回一个真值,否则返回0(假)。


7)tolower;


(1)函数原型:int tolower(char c);

(2)描述:如果c是一个 大写字母,返回其 小写字母值,否则返回原参数。


8)toupper;


(1)函数原型:int toupper(char c);

(2)描述:如果c是一个 小写字母,返回其 大写字母值,否则返回原参数。


9)isspace;


(1)函数原型:int isspace (char c);

(2)描述:如果c是一个 空白字符,返回一个真值,否则返回0(假)。


10)iscntrl;


(1)函数原型:int iscntrl(char c);

(2)描述:如果c是一个 控制字符,返回一个真值,否则返回0(假)。


11)ispunct;


(1)函数原型:int ispunct(char c);

(2)描述:如果c是一个 除空格,数字和字母之外的可打印字符,返回其小写字母值,否则返回0。


12)isprint;


(1)函数原型:int isprint(char c);

(2)描述:如果c是一个 可打印字符(包括空格),返回一个真值,否则返回0。


13)iagraph;


(1)函数原型:int iagraph(char c);

(2)描述:如果c是 除空格之外的可打印字符,返回一个真值,否则返回0。


二 字符串转换函数,头文件

#include<stdlib.h>


1)atof


(1)函数原型:double atof(const char *nPtr);

(2)描述:把字符串nPtr转换为double类型


2)atoi


(1)函数原型:int atoi(const char *nPtr);

(2)描述:把字符串nPtr转换为int类型


3)atol


(1)函数原型:long atol(const char *nPtr);

(2)描述:把字符串nPtr转换为long类型


4)strtod


(1)函数原型:double strtod(const char *nPtr, char **endPtr);

(2)描述:把字符串nPtr转换为double类型


5)strtol


(1)函数原型:long strtol(const char *nPtr, char **endPtr, int base);

(2)描述:把字符串nPtr转换为long类型


6)strtoul


(1)函数原型:long strtoul(const char *nPtr, char **endPtr, int base);

(2)描述:把字符串nPtr转换为long类型


三 标准输入/输出库函数,头文件

#icnlude<stdio.h>


1)gets; (因为LINUX下没有gets函数,是因为怕系统读取爆炸列,所以用fgets函数代替)


(1)函数原型:char *gets(char *s) ;

(2)描述:从标准输入设备把字符读到数组S中,直到遇到新行符或文件结束符为止。

读完字符后,在数组的最后追加一个NULL字符


2)fgets;


(1)函数原型:fgets(char *s, int n, FILE *fp);

(2)描述:从fp指向的文件读取一个长度为(n-1)的字符串。存入起始地址为S的空间.

stdin 是从键盘上读取字符串到数组中。

3)

putchar;


(1)函数原型:int putchar(int c);

(2)描述:打印存储在C中的字符(注意 这里是字符不是字符串)。stdout 是输出设备


4)puts;


(1)函数原型:int puts(const char *s);

(2)描述:打印字符串S和新行符。


5) getchar;


(1)函数原型:int getchar(void);

(2)描述:从标准输入设备读取下一个字符并以整数形式返回该字符。


6)sprintf ;


(1)函数原型:int sprintf(char *s,const char *format,…);

(2)描述:除了输出结果存储在数组S中(而不是打印到屏幕上)外,该函数于ptintf等价。


7)sscanf ;


(1)函数原型:int sscanf(char *s,const char *format,…);

(2)描述:除了从数组S中读取数据(而不是键盘读取)外,该函数于scanf等价。


四:字符串处理库中的字符操作函数,头文件

#include<string.h>


1)strcpy ;


(1)函数原型:char *strcpy(char *s1,const char *s2);

(2)描述:把字符串s2拷贝到字符串s1中,返回s1的值。


2) strncpy;


(1)函数原型:char *strncpy(char *s1,const char *s2,size_t n);

(2)描述:把字符串s2中的字符拷贝到数组s1中,最多拷贝n个字符,返回s1的值。


3)strcat ;


(1)函数原型:char *strcat(char *s1,const char *s2);

(2)描述:把字符串s2追加到数组s1中,s2的第一个字符覆盖掉s1中的终止字符NULL,返回s1的值。


4) strncat;


(1)函数原型:char *strncat(char *s1,const char *s2,size_t n);

(2)描述:把字符串s2追加到数组s1中,最多追加n个字符。s2的第一个字符覆盖掉s1中的终

止字符NULL,返回s1的值


五:字符串处理库中的比较函数,头文件

#include<string.h>


1)strcmp ;


(1)函数原型:int strcmp(char *s1,const char *s2);

(2)描述:比较字符串s1和字符串s2。在s1等于,小于或者大于s2时,分别返回0,负值和正值。


2) strncmp;


(1)函数原型:int strncmp(char *s1,const char *s2,size_t n);

(2)描述:比较字符串s1和字符串s2中的n个字符。在s1等于,小于或者大于s2时,分别返回0,负值和正值。


六:字符串处理库中的查找函数,头文件

#include<string.h>


1) strchr;


(1)函数原型:char *strchr(const char *s,int c);

(2)描述:定位字符c首次出现在字符串s中的位置。如果找到了c,返回一个指向s中的字符c的指针,否则返回NULL指针。


2) strcspn;


(1)函数原型:size_t strcspn(const char *s1,const char *s2);

(2)描述:计算并返回字符串s1中不含字符串s2中字符的起始段的长度。


3) strpbrk;


(1)函数原型:size_t strcspn(const char *s1,const char *s2);

(2)描述:定位字符串s1中首次出现字符串s2中字符的位置。如果找到了字符串s2中的字符,返回一个指向字符串s1中的该字符的指针,否则返回NULL指针。


4) strrchr;


(1)函数原型:size_t strrchr(const char *s1,int c);

(2)描述:定位字符字符串s中最后一次出现c的位置。如果找到了c,返回一个指向字符串s中的字符c的指针,否则返回NULL指针。


5) strspn;


(1)函数原型:size_t strspn(const char *s1,const char *s2);

(2)描述:计算并返回字符串s1中“只”含字符串s2中字符的起始段的长度。


6) strstr;


(1)函数原型:size_t strstr(const char *s1,const char *s2);

(2)描述:定位在字符串s1中首次出现字符串s2的位置。如果找到了该字符串,返回一个指向s1中的该字符串的指针,否则返回NULL指针。


7) strtok;


(1)函数原型:size_t strtok(const char *s1,const char *s2);

(2)描述:对strtok的一系列调用把字符串s1打断为用字符串s2中包含的字符分开的“记号”token。记号是逻辑波分,如一行文本中的单词。第一次调用把s1作为第一个参数,以后为继续把该字符串打断成记号而再次调用函数strtok时要用NULL作为第一个参数。每次调用都返回指向当前记号的指针。如果在调用该函数时,字符串中已没有剩余的记号,返回NULL.


七:字符处理库中的内存函数,头文件

#include<string.h>


1) memcpy;


(1)函数原型:void *memcpy(void *s1,const void *s2,size_t n);

(2)描述:把s2所只想的对象中的n个字符拷贝到s1所指向的对象中,返回指向结果对象的指针。


2) memmov;


(1)函数原型:void *memmov(void *s1,const void *s2,size_t n);

(2)描述:把s2所指向的对象中的n个字符拷贝到s1所指向的对象中。拷贝过程就好像是先把字符从s2所指向的对象拷贝到临时数组中,然后再从临时数组拷贝到s1所指向的对象中,返回指向结果对象的指针。


3) memcmp;


(1)函数原型:void *memcmp(void *s1,const void *s2,size_t n);

(2)描述:比较s1和s1所指向的对象的前n个字符。如果s1所指向的对象中的字符等于,小于或大于s2所指向的对象中的字符,返回值分别等于0,小于0和大于0。


4) memcpy;


(1)函数原型:void *memchr(void *s,int c,size_t n);

(2)描述:定位在s所指向的对象的前n个字符中首次出现字符c的位置。如果找到c,返回指向它的指针,否则返回NULL.


5) memset;


(1)函数原型:void *memset(void *s,int c,size_t n);

(2)描述:把c(转换为unsigned char类型)拷贝到s所指向的对象的前n个字符中。返回指向结果的指针。


八:字符串处理库中的其他函数,头文件

#include<stdio.h>


1) strerror;


(1)函数原型:char *strerror(int errornum);

(2)描述:建立与errornum匹配的完整的文字字符串(与系统有关),返回指向该字符串的指针。


2) strlen;


(1)函数原型:size_t strlen(const char *s);

(2)描述:计算字符串s的长度,返回终止字符NULL前字符个数