《算法竞赛入门经典》——重新实现库函数

来源:互联网 发布:oracle数据库 中文 编辑:程序博客网 时间:2024/04/29 16:33

在学习字符串时,重新实现一些库函数的功能是很有益的。

练习1:只用getchar函数读入一个整数。假设它占据单独的一行,读到行末为止,包括换行符。输入保证读入的整数可以保存在int中。

// 3.4.4-1 只用getchar函数读入一个整数。#include <stdio.h>int main(void){    int a[100], i = 0, num = 0;    while((a[i] = getchar()) && a[i] != '\n')    {        num = num*10 + a[i] - '0';        i++;    }    printf("%d\n", num);    return 0;}
练习2:只用fgets函数读入一个整数。假设它占据单独的一行,读到行末为止,包括换行符。输入保证读入的整数可以保存在int中。

// 3.4.4-2 只用fgets函数读入一个整数。#include <stdio.h>#include <string.h>int main(void){int i, num = 0;char s[100];fgets(s, sizeof(s), stdin);for(i = 0; i < strlen(s)-1; i++)num = num*10 + s[i] - '0';printf("%d\n", num);return 0;}
练习3:只用getchar实现fgets的功能,即用每次一个字符的方式读取整行。

// 3.4.4-3 只用getchar实现fgets的功能。#include <stdio.h>int main(void){char s[100];int i = 0;while((s[i] = getchar()) && s[i] != '\n'){i++;}s[i] = '\0';printf("%s\n", s);return 0;}
练习4:实现strchr的功能,即在一个字符串中查找一个字符。

// 3.4.4-4 实现strchr的功能,即在一个字符串中查找一个字符。#include <stdio.h>char * fun(char * s, char c);int main(void){return 0;}char * fun(char * s, char c){while(*s && *s != c)s++;if(*s == c)return s;elsereturn NULL;}


原创粉丝点击