0
点赞
收藏
分享

微信扫一扫

自己实现API puts()、gets()、strlen()、memset()

yellowone 2022-03-14 阅读 45
c语言
#include <stdio.h>
#include <stdlib.h>

//自己写自己的api

//自己写的类似puts或者printf这种函数api
void myputs(char *p)//*p相当于数组地址
{
    //字符串很明显在结尾有一个'\0'
    while(*p!='\0')
    {
        putchar(*p++);//这里就相当于移位
        //putchar代表输出一个字符,只能一个一个的输出
    }
    putchar('\n');
}

//字符输入的aip
int mygets(char *p)
{
    int i=0;
    if(p==NULL)
    {
        printf("内存非法!");
        return;
    }
    while(*p=getchar())
    {
        if(*p=='\n')
        {
        return i;
        }
        else
        {
            p++;
            i++;
        }
    }
}

//计算数组长度
int mystrlen(char *p)
{
    int i=0;
    while(*p!='\0'&&*p!='\n')//p!='\n'这个是防止自己写的mygets里面'\n'结束标志也算入字符个数里面
    {
        //printf("你输入的字符为%c\n",*p);//检验输出字符长度每个单位长度里面的字符
        i++;
        p++;
    }
        return i;
}

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

int main()
{
    char *p="ni hao word";
    char ab[]="asdfghj";
    myputs(p);
    
    myputs("请输入字符!");
    char str[128]={'\0'};
    int a;
    int b;
    a=mygets(str);
    printf("你输入的字符个数为%d\n",a);
    myputs(str);
    //myputs("straaaaaa");
    
    b=mystrlen(str);
    printf("你输入的字符长度为%d\n",b);
    printf("strlen你输入的字符长度为%d\n",b);
    
    char *p1=NULL;
    p1=(char *)malloc(4);
    mymemset(p1,'a',4);
    p1[4]='\0';
    myputs(p1);
    puts(p1);
    
    system("pause");
    return 0;
    
    
}




举报

相关推荐

0 条评论