#include <stdio.h>
#include <stdlib.h>
void myputs(char*p) //此处的*号是标志,标志这P是一个指针
{ if(p==NULL)
{
printf("需要输出的字符串为空,请重新输入");

}
else
{
while(1)
{
putchar(*p++); //此处的* 号是运行的意思,只有在指针的定义的时候表示的才是标志,此处也是取出内容的意思
if(*p=='\0') //注意此处应当是对指针指向的指针,取出其中的内容,在进行判断,字符串最后的字符是'\n';
{

break;
}

}

}
}
//输入函数,函数的效果相当于gets();
void mygets(char*p)
{ if(p==NULL) //判断内存是否合法
{
printf("内存是非法的");

}
else{ printf("请输入字符串:");
while( *p=getchar()) //注意这样做的做法依然的可以,让while继续的循环。
{
//*p=getchar(); //将获取到的字符给指针变量 在进行输入的时候,应当注意首先将指针取地址。不然操作无效,给指着的复制是一样的效果。
if(*p=='\n') //判断键盘输入输入放入是不是换行字符
{
return ;//进行返回,结束程序
}
else{
p++; //将指针地址进行偏移
}
}
}
}

//实现数组的初始化。1.指针变量,初始化的对象 2。初始化的为什么字符 3。初始化的大小
void mymenset(char *p ,char c, int size)
{ while(size)
{
*p++=c;
size--;


}





}
int main()
{ char *p2=NULL; //避免定义的指针野指针,将其指向改为空。
p2=(char *)malloc(128); //空间的开辟
if(p2==NULL) //判断空间的开辟是否成功
{printf("空间开辟失败");
exit(-1); //关闭程序。
}
mymenset(p2,'\0',128); //空间的初始化,1.表示初始化的对象 2.表示初始化成的字符 3. 表示初始化的大小memset()函数
char *p="小明很帅!";
//puts(p);
//函数的调用
mygets(p2);
myputs(p2);
// myputs(p);
return 0;
}

最新文章

  1. css 居中问题
  2. win7&amp;win8.1 x64位系统下在VS2010下配置MPICH2&amp;测试&amp;解决scanf不能输入
  3. Base64加密工具-iBlogs
  4. noi题库(noi.openjudge.cn) 1.8编程基础之多维数组T11——T20
  5. [SQL]合并字符串
  6. 第三百六十天 how can I 坚持
  7. jquery 的attr()方法解析
  8. CSS3圆角详解
  9. 为github帐号添加SSH keys
  10. WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放、图片立体轮播、图片倒影立体滚动)效果实现
  11. BZOJ 2083: [Poi2010]Intelligence test [vector+二分]
  12. C# 基于Bootstrap的三级联动
  13. 微信小程序开发小记
  14. Docker常见仓库Ubuntu
  15. 添加python虚拟环境
  16. Python进阶3---python类型注解、functools
  17. nginx+vsftp图片下载java代码上传
  18. Java归并排序的递归与非递归实现
  19. 爬虫_猫眼电影top100(正则表达式)
  20. BZOJ--1045-- 糖果传递(中位数,排序)

热门文章

  1. WPFApplication类
  2. SD卡之二:SD总线访问模式
  3. 看完复旦博士用Python统计核酸结果后,我照着也写了一个
  4. pandas子集选取的三种方法:[]、.loc[]、.iloc[]
  5. HTML5 Canvas 超逼真烟花绽放动画
  6. this-4
  7. 关于扑克牌的一些讨论——《Fluent Python 2》读书笔记
  8. 109_Power Pivot客户ABC(帕累托)分析度量值写法(非计算列)
  9. 技术管理进阶——空降Leader如何开展工作?
  10. monit 命令详解(monit)