strlen函数:求字符串的长度

size_t strlen(const char *s)

  • 头文件:#include<string.h>
  • 阐明:求出s指向的字符串的长度(不包含null字符)。
  • 返回值:返回s指向的字符串的长度。
size_t strlen(const char *s){    size_t len = 0;    while(*s++)        len++;    return len;}

strcpy和strncpy函数:复制字符串

char strcpy(char s1,const char *s2)

  • 头文件:#include<string.h>
  • 阐明:将s2指向的字符串复制到s1指向的数组中。若s1和s2指向的内存空间重叠,则作未定义解决。
  • 返回值:返回s1的值。
char *strcpy(char *s1,const char *s2){    char *tmp = s1;    while(*s1++ = *s2++)        ;    return tmp;}

char strncpy(char s1,const char *s2,size_t n);

  • 头文件:#include<string.h>
  • 阐明:将s2指向的字符串复制到s1指向的数组中。若s2的长度大于等于n,则复制到第n个字符为止。否则用null字符填充残余局部。若s1和s2指向的内存空间重叠,则作未定义解决。
  • 返回值:返回s1的值。
char *strncpy(char *s1,const char *s2,size_t n){    char *tmp = s1;    while(n){        if(!(*s1++ = *s2++)) break;  //遇到'\0'就完结循环        n--;     }    while(n--)    *s1++ = '\0';  //用'\0'填充残余局部    return tmp; }

strcat和strncat函数:连贯字符串

char *strcat(char *s1,const char *s2)

  • 头文件:#include<string.h>
  • 阐明:将s2指向的字符串连贯到s1指向的开端。若s1和s2指向的内存空间重叠,则作未定义解决
  • 返回值:返回s1的值。
char *strcat(char *s1,const char *s2){    char *tmp = s1;    while(*s1)        s1++;  //后退到s1的开端处     while(*s1++ = *s2++)        ;  //循环复制直至遇到s2中的'\0'     return tmp;}

char *strncat(char *s1,const char *s2,size_t n);

  • 头文件:#include<string.h>
  • 阐明:将s2指向的字符串连贯到s1指向的数组开端。若s2的长度大于n则截断超出局部。若s1和s2指向的内存空间重叠,则作未定义解决。
  • 返回值:返回s1的值。
char *strncat(char *s1,const char *s2,size_t n){    char *tmp = s1;    while(*s1)        s1++;  //后退到s1的开端处     while(n--)        if(!(*s1++ = *s2++)) break;  //遇到'\0'就完结循环     *s1 = '\0';  //在s1的开端插入'\0'     return tmp; }

strcmp和strncmp函数:比拟字符串的大小关系

char *strcmp(char *s1,const char *s2)

  • 头文件:#include<string.h>
  • 阐明:比拟s1指向的字符串和s2指向的字符串的大小关系。
  • 返回值:若s1和s2相等,则返回0;若s1大于s2,则返回正整数值,反之返回负整数值。
int *strcmp(char *s1,const char *s2){    while(*s1 == *s2){        if(*s1 == '\0')            return 0;        s1++;        s2++;    }    return (unsigned char)*s1 - (unsigned char)*s2;}

char *strncat(char *s1,const char *s2,size_t n);

  • 头文件:#include<string.h>
  • 阐明:比拟s1指向的字符的数组和s2指向的字符的数组的前n个字符的大小关系。
  • 返回值:若s1和s2相等,则返回0;若s1大于s2,则返回正整数值,反之返回负整数值。
int *strncmp(char *s1,const char *s2,size_t n){    while(n && *s1 && *s2){        if(*s1 != *s2)            return (unsigned char)*s1 - (unsigned char)*s2;        s1++;        s2++;        n--;    }    if(!n) return 0;  //相等     if(*s1) return 1;  //s1 > s2        return -1;    //s1 < s2}

atoi、atol和atof函数:转换字符串

int atoi(const char *nptr)

  • 头文件:#include<stdlib.h>
  • 阐明:将nptr指向的字符串转换为int型示意
  • 返回值:返回转换后的值。后果值不能用int型示意时的解决未定义。

long atol(const char *nptr)

  • 头文件:#include<stdlib.h>
  • 阐明:将nptr指向的字符串转换为long型示意
  • 返回值:返回转换后的值。后果值不能用long型示意时的解决未定义。

double atof(const char *nptr)

  • 头文件:#include<stdlib.h>
  • 阐明:将nptr指向的字符串转换为double型示意
  • 返回值:返回转换后的值。后果值不能用double型示意时的解决未定义。