#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;
}