简单的C程序<一>:字符间空格处理
来源:互联网 发布:seo关键词怎么分 编辑:程序博客网 时间:2024/05/29 03:59
简单的C程序<一>:字符串处理
问题一:编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。
解法一:
#include <stdio.h>#include <stdbool.h> //bool类型所需的头文件int main(void){ int c; bool flag = true; while ( (c=getchar()) != EOF) { if (c!=' ') { flag = true; putchar(c); } else if (flag==true) { flag = false; putchar(' '); } } return 0;}
总结:主要用一个flag标记下第一次遇到空格的时候。
解法二:(错误版本)
#include <stdio.h>int main(void){ int c,i; i = 0; while ( (c=getchar()) != EOF) { if (c != ' ') putchar(c); else { putchar(c); while ( (c=getchar())==' '); /*当getchar取出的数不是空格,则跳出次循环,到外面的这个大的while循环,接着用getchar取下一个循环,这样就错过了一个不是空格的打印输出*/ } } return 0; }
解法二(正确版本):
#include <stdio.h>int main(void){ int c; while ( (c=getchar()) != EOF) { if (c == ' ') { putchar(c); while ( (c=getchar()) ==' ' && c!=EOF ); } if (c == EOF ) break; putchar(c); } return 0;}
总结:主要是对getchar函数的使用方面总结下:
从键盘输入到getchar函数的过程实际上如下:输入设备->内存缓冲区->程序getchar()
详细的说:第一次getchar()时若从键盘输入很多字符(一般也是这样的),以后的getchar()再执行时就会直接从缓冲区中读取了。你按的键是放进缓冲区了,然后供程序getchar读取。一旦键入回车,getchar就进入缓冲区读取字符,一次只返回第一个字符作为getchar函数的值,如果有循环或足够多的getchar语句,就会依次读出缓冲区内的所有字符直到’\n’,(而这也是常用的),
那么问题来了:学挖掘机哪家强?哈哈
其实是到底缓冲区又是多大呢?输入多少缓冲区会满呢?
解法三:
#include <stdio.h>int main(void){ int c,pc; pc = EOF; while ( (c=getchar()) != EOF) { if (c != ' ') putchar(c); else if (c==' ' && pc!=' ') putchar(c); pc = c; } return 0;}
总结:用一个pc指代前面的字符c前面的字符。
那么问题又来了:如果有要求有字符之间有2个空格,3个空格呢,k个空格呢?
见下一节简单的C程序吧。
0 0
- 简单的C程序<一>:字符间空格处理
- 简单的C程序<二>:字符间空格处理
- c语言处理字符中的空格 函数
- C语言练习之删除字符间多余的空格
- 经典c程序(0013)---输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- 如何解决 html 中多空格字符被当作一个空格字符处理的问题
- 简单的字符乱码处理
- C语言字符处理经典小程序
- 一个简单的字符程序
- URL参数中带有特殊字符+,空格,/,?,%,#,&,=的处理
- C的字符处理函数
- C常用的字符处理
- 判断字母,空格,和其他字符个数的程序
- C语言中空字符,空格
- 【Java网络编程一】一个简单的c/s程序
- IOS 去空格处理 特殊字符处理
- 特殊的空格字符
- 特殊的空格字符
- js的一些学习笔记2
- idea15激活教程
- 实战c++中的vector系列--vector的遍历(stl算法、vector迭代器(不要在循环中判断不等于end())、operator[])
- avalon 学习资料
- 地图sd文件发布教程 Arcgis
- 简单的C程序<一>:字符间空格处理
- C语言总结
- 指向函数的指针—基本概念
- linux值wget命令详解
- CentOS7 LVM添加硬盘及扩容
- nginx核心进程模型
- 我的c语言学习总结
- java中Integer与int的种种比较你知道多少?
- scala学习笔记三