黑皮书之C程序设计语言
文章平均质量分 66
ccDLlyy
不忘初心,方得始终
展开
-
单词计数
#include #include #define IN 1#define OUT 0int main(){ int state; state=OUT; char ch; int count=0; while((ch==getchar())!=EOF){ if(ch==' '||ch=='\n'||ch=='\t')原创 2016-08-04 19:25:43 · 458 阅读 · 0 评论 -
确定C语言各类型变量取值范围(不通过头文件)
#include #include //如果char类型有八位,unsigned char范围是0~255,//signed char范围是-128~127。//不带限定符的char类型对象是否带符号取决于具体机器。//可打印字符总是正值int main(){ printf("signed char min = %d\n",-(char)((unsigned char)~0>原创 2016-08-09 22:04:09 · 967 阅读 · 0 评论 -
确定C语言各类型变量取值范围(通过头文件)
#include #include #include //各类型变量范围均在此头文件中int main(){ printf("signed char min = %d\n",SCHAR_MIN); printf("signed char max = %d\n",SCHAR_MAX); printf("signed short min = %d\n",SHRT_MIN原创 2016-08-09 20:53:03 · 4427 阅读 · 1 评论 -
删除注释/*......*/部分
#include #include //删除注释/*......*/部分void deletecomment(char ch);void findendcom();void dealquote(char ch);int main(){ char ch; while((ch=getchar())!=EOF){ deletecomment(ch);原创 2016-08-07 00:17:18 · 661 阅读 · 0 评论 -
C语言位操作的神应用(位操作)
不少代码通过位操作,解题很巧妙,学习语言,就要学其精髓,学其底层,不可蜻蜓点水例一:函数getbits(x,p,n),返回x中从右边数第p位开始向右数n位的字段unsigned getbits(unsigned x,int p,int n){ return (x>>(p-n)) & ~(~0} (x>>(p-n))把期望获得的字段移到字的最右端;~(~0原创 2016-08-10 10:30:11 · 7500 阅读 · 1 评论 -
较长输入行折成多行
#include #include #define MAXLENGTH 10#define TAB 8int dealtab(int position);void printline(int position);int findnoblank(int position);int newposition(int position);char line[MAXLENGTH+1];//f原创 2016-08-05 22:45:46 · 422 阅读 · 0 评论 -
空格串替换为最少数量的制表符和空格
#include #include #define TAB 8//先说明一下tab键,tab,不是跳固定长度,而是跳到下一制表的开始位置.int main(){ int space=0;//空格 int tab=0;//制表符 int position=0;//当前字符位置 char ch;//case中用|表示非空格字符,*表示空格 while(原创 2016-08-05 15:21:03 · 612 阅读 · 0 评论 -
打印输入中各个字符出现频率的直方图
#include #include #include #define MAXCHAR 127#define MAXLENGTH 15int main(){ char ch; int chsum[MAXCHAR+1]={0}; while((ch=getchar())!=EOF){ if(ch<=MAXCHAR) chsum原创 2016-08-05 08:53:40 · 674 阅读 · 0 评论 -
打印输入中单词长度的直方图(垂直方向)
#include #include #define MAXLENGTH 15//直方图最大长度#define MAXWORD 11//单词最大长度#define IN 1#define OUT 0int main(){ char ch; int count=0; int length[MAXWORD+1]={0};//数组用来记录最大长度内各长度的单词个数原创 2016-08-05 00:27:03 · 1297 阅读 · 0 评论 -
打印输入中单词长度的直方图(水平方向)
#include #include #define MAXLENGTH 15//直方图最大长度#define MAXWORD 11//单词最大长度#define IN 1#define OUT 0int main(){ char ch; int count=0; int length[MAXWORD+1]={0};//数组用来记录最大长度内各长度的单词个数原创 2016-08-04 23:31:11 · 569 阅读 · 0 评论 -
每行一个单词打印其输入
#include #include #define OUT 0#define IN 1int main(){ int state; state=OUT; char ch; while((ch=getchar())!=EOF){ if(ch==' '||ch=='\n'||ch=='\t'){ if(state=IN)原创 2016-08-04 19:27:58 · 567 阅读 · 0 评论 -
squeeze(s1,s2)
#include #include //除去s1中与s2中相同的字符void squeeze(char s1[],char s2[]){ int i,j,k=0; for(i=0;s1[i]!='\0';i++){ for(j=0;s2[j]!='\0'&&s1[i]!=s2[j];j++) ; if(s2[j]=='原创 2016-08-09 22:51:04 · 527 阅读 · 0 评论