《c程序设计语言》读书笔记-5.6-指针重写getline等函数
2024-08-30 19:51:49
#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; }
最新文章
- android 命令编译
- [转]Google Guava官方教程(中文版)
- 【Network】一张图看懂 Reactor 与 Proactor 模型的区别
- UML 小结(2)- 理论理解
- Java学习----集合函数
- 如何实现室内Wi-Fi无线终端的精准定位
- hdu5362 Just A String(dp)
- android的fragments管理
- 基于visual Studio2013解决C语言竞赛题之1025Bessel函数
- ebtables使用
- [MySQL] 联合索引与using index condition
- HFun.快速开发平台(二)=》自定义列表实例
- 学习ReentrantLock
- python txt文件常用读写操作
- django-xss攻击原理与防范
- PCL中IO模块和类的介绍
- jquery动态绑定事件
- [SoapUI]怎样运用Schema通过*.xsd文件来验证response对应的xml文件
- django 视图 使用orm values_list()方法获取 指定的 多个字段的数据
- unity调用Android百度地图