《c程序设计语言》读书笔记-5.6-指针重写getline等函数
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <curses.h> int getline_(char *s,int n)
{
char c;
char *sta = s; while(--n > 0 && (c = getchar()) != EOF && c != '\n')
{
*s++ = c;
}
if(c == '\n')
*s++ = c;
*s = '\0';
return s - sta;
} int atoi_(char *s)
{
int n,sign; for(;isspace(*s);s++)
;
sign = (*s == '-') ? -1 : 1;
if(*s == '+' || *s == '-')
s++;
for(n = 0;isdigit(*s);s++)
n = 10 * n + *s - '0'; return sign * n;
} void reverse_(char *s)
{
int temp;
char *t; for(t = s + strlen(s) - 1;s < t;s++,t--)
{
temp = *s;
*s = *t;
*t = temp;
}
} void itoa_(int n,char *s)
{
int sign;
char *t = s; if((sign = n) < 0)
n = -n;
do
{
*s++ = n % 10 + '0';
}while((n /= 10) != 0); if(sign < 0)
*s++ ='-';
*s = '\0';
reverse_(t); } int strindex_(char *s,char *t) //返回最右边出现的位置
{
char *sta = s;
char *p,*r;
int n = -2; for(;*s != '\0';s++)
{
for(p = s,r = t;*r != '\0' && *p == *r;p++,r++)
;
if(r > t && *r == '\0')
n = s - sta;
}
if(n != -2)
return n;
else
return -1;
} int main()
{
char p[] = "abcdefgab",q[] = "uh";
int n;
n = strindex_(p,q); printf("%d",n); return 0; }
《c程序设计语言》读书笔记-5.6-指针重写getline等函数的更多相关文章
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
		
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
 - Go语言学习笔记九: 指针
		
Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...
 - 《JavaScript高级程序设计》读书笔记--前言
		
起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...
 - 《Javascript高级程序设计》读书笔记之对象创建
		
<javascript高级程序设计>读过有两遍了,有些重要内容总是会忘记,写一下读书笔记备忘 创建对象 工厂模式 工厂模式优点:有了封装的概念,解决了创建多个相似对象的问题 缺点:没有解决 ...
 - Go 语言读书笔记
		
Go语言的设计理念很明确,就是将动态类型语言的编程容易度和静态类型语言的安全效率结合起来. Go语言,又称Golang,是Google开发的一款静态强类型.编译型.并发型,并具有垃圾回收机制的 ...
 - 《PHP程序设计》读书笔记
		
好久没有更新过我的博客了,主要前一阵子去了实习,现在实习进入尾声,终于有机会看看书了. 在前一阵子的实习中,用到最多就是PHP的CI框架和Jquery,所以现在再看一本有关PHP的书籍来深刻认识一下P ...
 - 《JavaScript高级程序设计》读书笔记 ---函数
		
函数函数对任何语言来说都是一个核心的概念.通过函数可以封装任意多条语句,而且可以在任何地方.任何时候调用执行.ECMAScript 中的函数使用function 关键字来声明,后跟一组参数以及函数体. ...
 - 《C++ 程序设计》读书笔记
		
本文联合编辑:小辣辣.向她致以最崇高的敬(爱)意 第一章 C++的初步认识 在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替 #include 指令,然后再对该程序单元进行整体编 ...
 - 读书笔记 effective c++ Item 35 考虑虚函数的替代者
		
1. 突破思维——不要将思维限定在面向对象方法上 你正在制作一个视频游戏,你正在为游戏中的人物设计一个类继承体系.你的游戏处在农耕时代,人类很容易受伤或者说健康度降低.因此你决定为其提供一个成员函数, ...
 
随机推荐
- turtle画玫瑰花
			
import turtle turtle.screensize(400, 300, "pink") turtle.setup(1000, 600) turtle.write('作者 ...
 - CentOS7部署LAMP+xcache (php-fpm模式)
			
此次实验准备3台CentOS7服务器,版本号:CentOS Linux release 7.2.1511. 搭建Apache服务器 通过 yum -y install httpd 安装Apache: ...
 - python-读写文件的方式
			
open(path, flag[, encoding][, errors]) path:要打开文件的路径 flag:打开方式 r 以只读的方式打开文件,文件的描述符放在文件的开头 rb 以二进制格式打 ...
 - CentOS yum命令报错 Error: File /var/cache/yum/i386/6/epel/metalink.xml does not exist
			
最近在虚拟机上执行yum命令一直报错:Could not parse metalink https://mirrors.fedoraproject.org/metalink?repo=epel-7&a ...
 - Gold Balanced Lineup POJ - 3274
			
Description Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been abl ...
 - 笔记-scrapy-深入学习-sheduler
			
笔记-scrapy-深入学习-sheduler 1. scheduler.py source code:scrapy/core/scheduler.py: 1.1. 初始化的开始 在分 ...
 - 初见spark-04(高级算子)
			
今天,这个是spark的高级算子的讲解的最后一个章节,今天我们来介绍几个简单的算子, countByKey val rdd1 = sc.parallelize(List(("a", ...
 - 大话卷积神经网络(CNN)
			
这几年深度学习快速发展,在图像识别.语音识别.物体识别等各种场景上取得了巨大的成功,例如AlphaGo击败世界围棋冠军,iPhone X内置了人脸识别解锁功能等等,很多AI产品在世界上引起了很大的 ...
 - laravel5.5服务提供器
			
目录 1. 编写服务提供器 1.1 注册方法 register 1.1.1 简单绑定 1.1.2 绑定单例 1.1.3 绑定实例 1.1.4 绑定初始数据 1.2 引导方法 boot 2. 注册服务提 ...
 - Fiddler - 使用教程
			
1.断点调试,修改请求表单和响应数据 命令介绍: bpu在请求开始时中断,bpafter在响应到达时中断,bps在特定http状态码时中断,bpv/bpm在特定请求method时中断. bpu m.t ...