> 文档中心 > C语言基础-封装API篇

C语言基础-封装API篇

文章目录

    • 封装API篇
    • 1.自己封装——输出字符串函数 : myputs();
    • 2.自己封装——输入字符串函数 : mygets();
    • 3.自己封装——字符串个数函数:mystrlen();
    • 4.自己封装——字符串初始化函数:mymemset();
    • 5.自己封装——字符串拷贝(1)函数 : mystrcpy();
    • 6.自己封装——字符串拷贝(2)函数 : mystrncpy();
    • 7. 自己封装——字符串拼接函数 : mystrcat();

封装API篇

1.自己封装——输出字符串函数 : myputs();

特点:字符串明显特点,结尾有‘\0’;

puts(str); //与printf("%s",p); 作用等价 区别是 puts();里面自己包含了\n。
原型:
int puts(const char *string);

自己封装:myputs(const char *string);

// * 除了变量声明定义以外都是运算符

void myputs(char *p){    while(*p != '\0'){     printf("%c", *p++);   //也可以putchar(*p++);    }}

2.自己封装——输入字符串函数 : mygets();

原型:
char *gets(char *str);
功能:
从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。

自己封装: mygets(char *str);

// * 除了变量声明定义以外都是运算符

void mygets(char *p){   if(p == NULL){ printf("内存非法\n"); return 0;   }   while(*p = getchar()){      if(*p == '\n'){   return 0;      }else{     p++;    }   }}

3.自己封装——字符串个数函数:mystrlen();

自己封装:

int mystrlen(char *p){  while(*str != '\0'){cnt ++;str  ++;  }    return cnt;}

4.自己封装——字符串初始化函数:mymemset();

memset(初始化对象的开头,初始化成什么字符,初始化多大);
memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。

自己封装:

void mymemset(char *p ,char c, int size){    while(size){*p++ = c;size--;    }}

5.自己封装——字符串拷贝(1)函数 : mystrcpy();

strcpy函数 作用是复制字符串。
strcpy函数的声明是“char *strcpy (char *dest, const char *src)”,表示把src所指向的字符串复制到dest。
原型:char *strcpy(char *dest , const char *src);

自己封装:

void mystrcpy(char *dest ,const char *src){if(str == NULL  ||  dest ==NULL){ return NULL; } //字符串结尾‘\0’while(*str != '0'){  *dest = *str;  dest++;  str++;  *dest ='\0';  }}

6.自己封装——字符串拷贝(2)函数 : mystrncpy();

char * strncpy (char *de st, con st char *src, int n),把src所指向的字符串中以src地址开始的前n个字节复制到dest 所指的数组中,并返回dest 。
原型:
char *strncpy(char *dest , char *src , int n);

自己封装:

void mystrncpy(char *dest , char *src , int n){ if(str == NULL  ||  src ==NULL){   return NULL; } //字符串结尾‘\0’while(*str != '0' && n>0){  *dest = *str;  dest++;  str++;  n--;  }  *dest ='\0';}

7. 自己封装——字符串拼接函数 : mystrcat();

strcat (拼接字符串1 , 拼接字符串2 ); //把2拼接到1上

自己封装:

void mystrcat(char *dest ,char *str){while(*dest != '\0'){dest ++;}while(*str != '\0'){*dest++ = *str++;} *dest = ‘\0;}