c语言程序设计第一章3

字符数组是C语言中最常用的数组类型。下面我们通过编写一个程序,来说明字符数组以
反操作字符数组的函数的用法。该程序读入一组文本行,并把最长的文水行打印出来。该算
法的基本框架非常简单:
  while
(还有未处理的行)
  i f (该行比已处理的最长行还要长)
  保存该行
  保存该行的长度
  打印最长的行


 1 #include <stdio.h>
2 #include <stdlib.h>
3 #define MAXLENGTH 100//文本的最大长度
4 int getline(char line[],int limit);
5 void copyline(char to[],char from[]);
6 int main()
7 {
8 int length;//当前行的长度
9 int maxlength=0;//最大行的长度
10 char line[MAXLENGTH];//保存当前行的字符串
11 char longest[MAXLENGTH];//保存最大行的字符串
12 while((length=getline(line,MAXLENGTH))>0)
13 {
14 if(length>maxlength)
15 {
16 maxlength=length;
17 copyline(longest,line);
18 }
19 }
20 if(maxlength>0)
21 {
22 printf("%s",longest);
23 }
24 return 0;
25 }
26 /*getline函数:将输入的字符保存到line数组中,并返回数组长度*/
27 int getline(char line[],int limit)
28 {
29 int c;
30 int i;
31 for(i=0;i<(limit-1)&&(c=getchar())!=EOF&&c!=‘\n‘;i++)
32 {
33 line[i]=c;
34 }
35 if(c==‘\n‘)
36 {
37 line[i]=c;
38 ++i;
39 }
40 line[i]=‘\0‘;
41 return i;
42 }
43 /*copyline函数:经最长字符串保存到to数组中*/
44 void copyline(char to[],char from[])
45 {
46 int i=0;
47 while((to[i]=from[i])!=‘\0‘)
48 ++i;
49 }

运行结果:

练习1.16修改打印最长文本行的程序的主程序m a i n,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本。


 1 #include <stdio.h>
2 #include <stdlib.h>
3 #define MAXLENGTH 15//文本的最大长度
4 int getline(char line[],int limit);
5 void copyline(char to[],char from[]);
6 int main()
7 {
8 int length;//当前行的长度
9 int maxlength=0;//最大行的长度
10 char line[MAXLENGTH];//保存当前行的字符串
11 char longest[MAXLENGTH];//保存最大行的字符串
12 printf("The maxlength of string is 15.\n");
13 while((length=getline(line,MAXLENGTH))>0)
14 {
15 printf("%2d:%s",length,line);
16 if(length>maxlength)
17 {
18 maxlength=length;
19 copyline(longest,line);
20 }
21 }
22 if(maxlength>0)
23 {
24 printf("%s",longest);
25 }
26 return 0;
27 }
28 /*getline函数:将输入的字符保存到line数组中,并返回数组长度*/
29 int getline(char line[],int limit)
30 {
31 int c;
32 int i;//记录输入的字符串长度
33 int j=0;//记录实际可以保存的字符串长度
34 for(i=0;(c=getchar())!=EOF&&c!=‘\n‘;i++)
35 {
36 if(i<(limit-2))
37 {
38 line[j]=c;
39 j++;
40 }
41 }
42 if(c==‘\n‘)
43 {
44 line[j]=c;
45 ++j;
46 ++i;
47 }
48 line[j]=‘\0‘;
49 return i;
50 }
51 /*copyline函数:经最长字符串保存到to数组中*/
52 void copyline(char to[],char from[])
53 {
54 int i=0;
55 while((to[i]=from[i])!=‘\0‘)
56 ++i;
57 }

运行结果:

练习1.18编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行


 1 /*******删除每个输入行末尾的空格及制表符,并删除完全是空格的行****************/
2 #include <stdio.h>
3 #include <stdlib.h>
4 #define MAXLENGTH 100
5 int getline(char s[],int limit);
6 int mydelete(char s[]);
7 int main()
8 {
9 int len;
10 char s[MAXLENGTH];
11 while((len=getline(s,MAXLENGTH))>0)
12 {
13 printf("未删除之前字符数(包含空格):");
14 printf("%d\n",len);
15 if(mydelete(s)>0)
16 {
17 printf("删除之后字符数:");
18 printf("%d",mydelete(s));
19 }
20 }
21 return 0;
22 }
23 int getline(char s[],int limit)
24 {
25 int c;
26 int i;
27 for(i=0;i<(limit-1)&&((c=getchar())!=EOF)&&c!=‘\n‘;i++)
28 {
29 s[i]=c;
30 }
31 if(c==‘\n‘)
32 {
33 s[i]=c;
34 ++i;
35 }
36 s[i]=‘\0‘;
37 return i;
38 }
39 int mydelete(char s[])
40 {
41 int i=0;
42 while(s[i]!=‘\n‘)
43 ++i;
44 --i;
45 while(i>=0&&(s[i]==‘ ‘||s[i]==‘\t‘))
46 --i;
47 if(i>=0)
48 {
49 ++i;
50 s[i]=‘\n‘;
51 ++i;
52 s[i]=‘\0‘;
53 }
54 return i;
55 }

运行结果:

c语言程序设计第一章3,码迷,mamicode.com

时间: 2024-10-23 04:08:44

c语言程序设计第一章3的相关文章

javascript高级程序设计 第一章--javascript简介

javascript高级程序设计 第一章--javascript简介Netscape开发的javascript最初的目的就是处理由服务器负责的一些输入验证操作,而在js问世之前,必须                    把表单数据发到服务器端用户才能得到反馈.如今的js不再局限于简单的数据验证,而且具备了与浏览器窗口及其内容等所有方面的交互能力,js已经发展成功能全面的面向客户端的编程语言.javascript由Netscape公司开发,原名Livescript,是为了迎合当时的java热,所

Javascript高级程序设计——第一章:javascript简介

第一章 javascript简介 1.Javascript简史 javascript诞生于1995年,是由网景公司的Brendan Eich开发的,最初的目的是在客户端处理一些输入验证操作,自此后成为常见浏览器的特色功能,如今用途已经不限于简单的数据验证,而是具备与浏览器窗口及其内容等几乎所有方面交互的能力.当时javascript是为了搭上媒体热炒的java才改名为javascript其最初名为livescript. 在javascript取得巨大成功后,微软公司也在自己的浏览器中加入了名为J

读书笔记 - javascript 高级程序设计 - 第一章 简介

第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BOM 浏览器对象模型 ECMAScript的宿主环境 web浏览器 Node(服务器js平台) adobe flash js和as的关系 他们都实现了 ECMAScript 五大主流浏览器 IE Firefox Safari Chrome Opera dom介绍 它是针对xml但经过扩展用于html的应用

《自学C语言》第一章:C语言简介

这一章主要介绍什么是C语言,以及它的产生.发展历史.如其中所说的计算机术语有不懂的请百度,例如什么是强类型,什么是高级语言. 1.C语言是什么? 答:C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.它是一种强类型的高级语言,几乎能做任何你想要做的事情. 既然它是强类型的语言,那肯定还有弱类型的语言咯?当然,强类型的语言还有很多,如C.C++.Fortran.Java:弱类型的语言

复习C语言:第一章

复习C语言中的5中基本类型,以及各个类型占用了多少个字节: #include <stdio.h> int main(void) { printf("int=%d\n", sizeof(short int)); printf("int=%d\n", sizeof(int)); printf("int=%d\n", sizeof(long int)); printf("char=%d\n", sizeof(char))

python语言入门-第一章开始

1.1 为什么要选择Python? 把Python描述成一种面向对象的脚本语言可能是最合适的. Python 面向对象,且可以成为C++.Java等语言的脚本工具(可混合性). Python是开源软件. 具有移植性,因为是使用移植性的ACSI C 写成的. 可以自动地管理内存,根据需要缩小增加内存. 开发周期短,简单,“可执行的伪代码” 易学,可能几个小时就可以学会.

go语言总结第一章

需要注意的地方:1.整型数据的溢出: 一个int8型整数的最大值是127,如果在加上一就是-128.2.特殊类型:复数: 复数实际上由两个浮点数构成,一个表示实部,一个表示虚部.3.Go语言规定,函数,控制结构等的左大括号“{”必须和函数声明或控制结构放在同一行.如果将左大括号放在函数声明,控制语句的下一行,编译器会在左大括号的前方自动加一个大括号,可能导致程序异常.4.Go对多语言的支持.5.函数名首字母为小写,即为private 函数名首字母为大写,即为public

C语言数据结构——第一章 数据结构的概念

一.数据结构的基本概念 1.1-数据结构是什么? 数据结构是计算机存储和组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术有关. 想要对大型复杂程序的构造进行系统而科学的研究,必须首先对这些程序中所包含的数据结构进行深入的研究. 数据:通常用于描述客观事物,是对客观事物的符号表示.例如:在我们平时使用的各种文字.数字和特定符号都可以称之为数据.而在计算机中,数据是指所有能

C语言基础-第一章

1.常量 直接常量: int mm=100; float nn=100.01; 字符常量:   编译指令,#define 常量名 常量值   (预处理命令,预处理命令都#开头.成为宏命令)  关键字,const 修饰符   (folat 浮点类型.长度为:6位,double 浮点类型 长度为:9位) 2.变量(值在内存当中可以改变的成为变量) 2.1全局变量 2.2局部变量 2.3静态变量,修饰符 static 2.4数据类型的变量 2.5寄存器变量,修饰符 register 2.6外部变量 ,