我是靠谱客的博主 迷人西牛,最近开发中收集的这篇文章主要介绍C-C和指针作业题(第一章),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Linux下输入EOF使用Ctrl+D, Windows下输入EOF使用Ctrl+Z

编写一个程序,从标准输入读取几行输入,每行输入都要打印到标准输出上,前面要加上行号,在编写这个程序时要试图让程序能够处理的输入行的长度没有限制。

#include <stdio.h>
int main(int argc, char **argv) {
int ch, row_num = 1;
unsigned char state = 1;
while ((ch = getchar()) != EOF) { if (state == 1) { printf("%d", row_num); row_num++; state = 0; } putchar(ch); if (ch == 'n') { state = 1; } }return 0; }

编写一个程序,一行行的读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,可以假定所有的输入行均不超过1000个字符

顺便练习一下多文件编译

文件func.h

#ifndef _FUNC_H
#define _FUNC_H 1
int int_max(int a, int b);
int int_min(int a, int b);
#endif

文件func.c

#include "func.h"
int int_max(int a, int b) {
return a > b ? a : b;
}
int int_min(int a, int b) {
return a > b ? b : a;
}

文件main.c

#include <stdio.h>
#include <string.h>
#include "func.h"
#define MAX_LENGTH 1000
int main(int argc, char **argv) {
char max_str[MAX_LENGTH];
char scanf_str[MAX_LENGTH];
short max_len = 0;
while (gets(scanf_str) != NULL) {
if (strlen(scanf_str) > max_len && max_len < MAX_LENGTH) {
max_len = int_min(strlen(scanf_str), MAX_LENGTH);
strcpy(max_str, scanf_str);
}
}
if (max_len > 0) {
printf("%sn", max_str);
}
return 0;
}

编译:

  gcc -c -o func.o func.c

  gcc -c -o main.o main.c

连接:

  gcc -o main main.o func.o

运行:

  ./main

 

转载于:https://www.cnblogs.com/JohnABC/p/3530814.html

最后

以上就是迷人西牛为你收集整理的C-C和指针作业题(第一章)的全部内容,希望文章能够帮你解决C-C和指针作业题(第一章)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部