《c程序设计语言》读书笔记-5.6-指针重写getline等函数
2014-11-14 10:20
387 查看
#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语言深度解剖(精讲版)——读书笔记22-函数指针
- 《c程序设计语言》读书笔记-4.13-递归版本reverse函数
- [读书笔记]函数指针
- 《c程序设计语言》读书笔记-5.3-指针实现strcat
- 《c程序设计语言》读书笔记-5.5-指针实现strncpy,strncat,strncmp
- 《c程序设计语言》读书笔记-5.5-指针实现strncpy,strncat,strncmp
- 《c程序设计语言》读书笔记(五)——指针与数组
- 《C程序设计语言》——函数指针
- 《c程序设计语言》读书笔记-5.4-指针实现strend
- 《c程序设计语言》读书笔记-5.9-指针转换天数和日期
- 《c程序设计语言》读书笔记-5.4-指针实现strend
- 《c程序设计语言》读书笔记-5.9-指针转换天数和日期
- windows核心编程<读书笔记一>---重写Onchar函数
- 《c程序设计语言》读书笔记-5.3-指针实现strcat
- 《C++ Primer》读书笔记第六章-3-特殊特性 And 函数匹配 And 函数指针
- Item 14. 函数指针(Function Pointers)
- C++成员函数指针一种用法
- 成员函数指针与高性能的C++委托(上篇)
- Item 14. 函数指针(Function Pointers)