当前位置:文档之家› C语言字符、字符串定义及相关函数

C语言字符、字符串定义及相关函数

m指向字符串的第一个字符,可用++m指向第二个字符。 指针m是个变量。
1、strcmp 功能:比较两个字符串,两个字符串从左向右逐个字符相比(按ASCII值比较),直到出现不同的字
符或遇到‘\0’为止 格式:extern int strcmp(const char *s1,const char *s2); 结果: 当s1<s2时,返回一个负数 当s1=s2时,返回值为0 当s1>s2时,返回正数
char str={'"','h','e','l','l','o','"','\0'}; =“hello”(必须加“\0”,若没有他,认为字符 数组,不是字符串) 3、char指针 char *m="hello,world";
数组形式和指针形式的区别:
数组形式: 编译器会把数组名m看作是数组首元素的地址&m[0]的同义词,m是个地址常量。可以用m+1来标识 数组里的下一个元素,但不能使用++m,增量运算符只能在变量前使用, 而不能在常量前使用。
19、strspn 功能:从str字符串的开头计算连续的字符,而这些字符全都是accept所指的字符串中的字符,如果
返回值是n,则代表字符串str开头连续有n个字符都是属于字符串accept内的字符 格式:size_t strspn(char const *str,char const *accept)
到遇上非数字或字符串结束时结束转换。将不合条件而终止的nptr字符指针有endptr返回。 9、strtod
功能:将字符串转换为浮点数 函数定义: double strtod(const char *nptr,char **endptr); nptr字符串可包含正负号,小数点或E(e)来表示指数部分,如123.456或123e-2.
查找函数
14、strchr 功能:查找字符串str中首次出现字符val的位置,返回首次出现val的位置指针,失败返回NULL 格式:char *strchr(const char* _Str,char val)
15、strrchr 功能:在字符串里查找最后出现字符val的位置 格式:char *strrchr(const char *str, char val); 这样返回当前位置,就能对val位置以后的字符串进行操作。
islower
小写字母 a-z
isupper
void * memchr(void * const a,int ch,size_t length); 从a的位置开始查找字符ch第一次出现的位置。
返回该位置的指针,总共查找length个字节
void * menset(void * a,int ch,size_t length );
从a的位置length字节都设置为字符值ch。
把src内存位置复制到一个临时位置,这个位置不会跟src或dst重叠,然后再把他从临时位置复制 到到目标位置,所以比memecpy慢一些,但是src如果和dst有重叠,就只能用memmove、
例:memmove(x,x+1,100);
void * memcmp(void * const dst,void const *src,size_t length); 对两端内存进行比较n个字符
m[40]在计算机内存中被分配一个有40个元素的数组(其中每个元素对应一个字符,还有一个附加 的元素对应结束的空字符'\0')。每个元素都被初始化为相应的字符 指针形式: 指针形式(*m)也会在静态存储区为字符串预留空间。此外,一旦程序开始执行,还要为指针变量 m另外预留一个存储位置,以在该指针变量中能够存储字符串的地址。
20、strcspn 功能:与strspn相反,返回str字符串起始部分中不与accept中任何字符匹配的计数。 格式:size_t strcspn(char const * str,char const * accept)
21、strtok 功能:用来将字符串分隔成一个个片段。参数src指向欲分割的字符串,sep是一个字符串,定义了用
格式:char * strtok(char* str,char const * sep) 例:
main(){ char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z"; char *delim = "-: "; char *p; printf("%s ", strtok(s, delim)); while((p = strtok(NULL, delim)))
9、atoi 功能:将字符串转换成整数型的一个函数。 函数定义: int atoi(const char *nptr); nptr课包括正负号。转换后没小数,因为是int类型
10、atol 功能:将字符串转换为长整型数 函数定义: long atol(const char *nptr);
11、atof 功能:将字符串转换为浮点型
2、strcat 功能:把src所指字符串添加到dest结尾处,覆盖dest结尾处的‘\0’,返回指向dest的指针 格式:extern char *strcat(char *dest,char *src);
3、strcpy 功能:把从src地址开始且含有NULL结束符的字符串复制到dest开始的地址空间,返回指向dest的指
17、strrstr 功能:在字符串中查找指定字符串最后一次出现的位置 格式:char *strrstr(char *str1, char *str2); 注意:这个在库里边没有,需要自己写 函数实现: char *my_strrstr(char *dest,char *src) { char *first=NULL; char *second=NULL; char *str1=dest; char *str2=src; assert(dest); assert(src); while((*str1 != '\0')) { first=str1; //记录下一次比较的起始位置 while((*str1 != '\0') && (*str2 != '\0') && (*str1 == *str2)) { str1++; str2++; } if(*str2 == '\0') second=first; //从第一次查找到子串的位置后继续查找 str1=first+1; str2=src; }
5、strncpy 功能:把从src地址开始的前n个字符复制到dest开始的地址空间,返回指向dest的指针,会产生不以
NUL结尾的字符串,注意 格式:extern char *strcpy(char *dest,char *src,size_t n); 也可以把字符数组转换为字符串
5、strncmp 功能:比较两个字符串 格式:int strncmp ( const char * str1, const char * str2, size_t n );
if(*str1 == '\0') return second;
return ; }
18、strpbrk 功能:在源字符串(S1)中找出最先含有字符串(S2)中任一字符的位置并返回,若找不到则返回空
指针。 格式:extern char *strpbrk(const char *s1, const char *s2);
字符、字符串及相关的函数
C语言中没有string类型,字符串都是通过char形式存储的 typedef const char * string;
定义字符串的几种形式:字符串常量,char数组,char指针
1、字符串常量 printf("%s","hello") 2、char数组 char str[40] ="hello,world";
12、itoa
功能:将任意类型的数字转换成字符串 函数定义:char*itoa(int value,char*string,int radix); int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数
13、sprintf(filename,“./tmp_file/%s”,uuid_buf) filename 就保存为当前目录下tmp_file的uuid_buf
8、bcmp 功能:比较字符串S1和S2前n个字节是否相等 格式:extern int bcmp(const void *s1, const void *s2, int n);
7、strtol(nptr不能等于NULL) 功能:将字符串转换为长整型数 函数定义: long int strtol(const char *nptr,char **endptr,int base);
针 格式:extern char *strcpy(char *dest,char *src); 注意: 这个函数的第一个参数必须分配内存,而且内存大小必须能够存的下Src。
4、strncat 功能:把src所指的字符串的前n个字符添加到dest所指的字符串结尾处,覆盖‘\0’,返回指向dest
的指针 格式:extern char *strncat(char *dest,const *src,size_t n);
作分隔符的字符集合.strtok找到str的一个标记后,将其用NUL结尾,然后返回一个指向这个标记的指 针。
如果strtok函数的第一个参数不是NULL,函数将找到字符串的第一个标记,strtok同时将保存他在字 符串中的位置。如果strtok的第一个参数是NULL,函数就在同一个字符串中从这个被保存的位置开始像 前面一样查找下一个标记。如果没有更多标记,则返回NULL
相关主题