C语言字符及字符串处理函数

jopen 7年前

#include <ctype.h>

int isalnum(int c) 测试C是否为字母或数字

int isalpha(int c) 测试C是否为字母

int iscsym(int c) 测试C是否为字母、下划线或数字

int iscsymf(int c) 测试C是否为字母、下划线

int isdigit(int c) 测试C是否为十进制数字

int isxdigit(int c) 测试C是否为十六进数字

int islower(int c) 测试C是否为小写字母

int isupper(int c) 测试C是否为大写字母

int ispunct(int c) 测试C是否为标点符号

int isspace(int c) 测试C是否为空白

int isgraph (int c)     测试C是否为可打印字符

int isascii(int c) 判断C是否为ASCII字符,(0-127)

int toasscii(int c) 将字符C转换成ASCII

int tolower(int c) 将字符C转换成小写字符

int toupper(int c) 将字符C转换成大写字符

#include <stdlib.h>

double atof(const char *nptr) 将字符串转换成双精度浮点型数

int atoi(const char *nptr) 将字符串转换成整型数  

long atol(const char *nptr) 将字符串转换成长整型数

double strtod(const char *nptr, char **endptr) 将字符串转换成双精度浮点型数

loing int strtol(const char *nptr, char **endptr,int base) 将字符串转换成长整型数

unsigned long int strtoul(const char *nptr, char **endptr, int base) 将字符串转换成无符号长整型数

char *gcvt(double number, sixe_t ndigits, char *buf)将浮点整型数转换为字符串,取四舍五入

#include <string.h>

char *strcpy(char *s1, const char *s2) 将字符串s2复制到数组s1中

char *ctrncpy(char *s1, const char *s2, size_t n) 将字符串s2开始的n个字节复制到字符数组s1中

char *strcat(char *s1, const char *s2) 将字符串s2追加到字符数组s1中的字符串后

char *strncat(char *s1, const char *s2, size_t n) 将字符串s2开始的n个字节追加到字符数组s1中的字符串后

int strcmp(const char *s1, const char *s2) 比较字符串s1与字符串s2

int strncmp(const char *s1, const char *s2, size_t n) 比较字符串s1与字符串s2前n个字符

char *strchr(const char *s, int c) 查找C所表的字符在字符串s中首次出现的位置,成功返回该位置的指针,否则返回NULL

char *strrchr(const char *s, int c) 返回C 所代表的字符在s中最后一次出现的位置指针,否则返回NULL

size_t strcspn(const char *s1, const char *s2)计算并返回字符串s1中不包含字符串s2中任何字符的起始段的长充,即在字符串s1中查找是否有字符串s2的字符,若碰到有该字符则返回从开始到该字符之前的字符长度

size_t strspn(const char *s1, const char *s2)计算并返回字符串s1中只包含字符串s2中字符的起始段的长段,即当在s1中没遇到s2在s2中的字符时,返回从开始到该字符之前的字符串的长度

char *strpbrk(const char *s1,const char *s2)查找字符串s2中任意字符在字符串s1中首次出现的位置

char *strstr(const char *s1, const char *s2) 返回字符串s2在字符串s1中首次出次的位置指针,否则返回NULL

char *strtok(char *s1, const char *s2) 对strtok()函数的反复调用将使字符串s1分解为若干记号,这些记号用字符串s2中所包含的字符分开,第一次调用包含s1作为第一个参数,而继续划 分相同字符串的后续调用将包含NULL作为第一个参数,每次调用将返回指向当前记号的指针。如果当调用函数时没有更多的记号,则返回NULL

#字符串内存函数

void *memcpy(void *s1, const void *s2, size_t n) 将s2指向的内存块内n个字符复制到s1指向的内存块,返回结果对象的指针;

void *memmove(void *s1,const void *s2, size_t n) 将s2指向的内存块内n个字符复制到内存中的临时空间,在从临时空间复制到s1指向的内存块内,返回结果对像的指针

void memcmp(const void *s1, const void *s2,size_t n) 用于比较s1和s2所指向的内存块中前n个字符的大小,返回比较结果

void *memchr(const void *s, int c, size_t n) 查找s所指向的内存块的前n个字符内第1次出现c的地方。如果找到了c,则返回s1中c的指针,否则返回null

void *memset(void *s, int c,size_t n) 将c复制到s指向的内存块的前n个字符中,返回产生的指针

 

#字符串其他函数

char *strerror(int errornum) 用和系统相关的方式将errornum映射到纯文本字符串中,返回指向该字符串的指针

size_t strlen(const char *s)     确定字符串s的长度,返回字符串结束符前的字符个数

来自:http://my.oschina.net/u/1176566/blog/289314