c程序设计语言之指针第5章
leafinsnowfield
这个作者很懒,什么都没留下…
展开
-
修改dcl程序,使它能够处理输入中的错误
#include #include enum{NAME,PARENS,BRACKETS};enum{NO,YES};extern int tokentype;extern char token[];int prevotken=NO;int gettoken(void){ int c,getch(void); void ungetch(int); char *p=token;原创 2015-01-17 22:51:23 · 666 阅读 · 0 评论 -
库函数strncpy
#include #include void strncpy(char *s,char *t);/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) { return 0;}原创 2014-08-22 17:08:46 · 368 阅读 · 0 评论 -
将某年某月的日期表示方式转化为某年中第几天的表示方式(用到静态变量)(用到闰年的定义)注意静态变量写在要用的函数之前
注意:静态变量写在要用的函数之前原创 2014-09-06 22:03:06 · 747 阅读 · 0 评论 -
效仿UNIX程序grep的实现方法改写模式查找程序
#include #include #define MAXLINE 1000int getline(char line[],int MAXLINE);int main(int argc,int *argv[]){ char line[MAXLINE]; int found=0; if(argc!=2){原创 2014-10-01 01:18:11 · 370 阅读 · 0 评论 -
指针与数组之间的不同
指针时一个变量,因此在c语言中语句pa=a原创 2014-10-02 11:17:07 · 282 阅读 · 0 评论 -
switch语句格式
switch(){case V:case}原创 2014-10-02 11:38:52 · 761 阅读 · 0 评论 -
c语言 int 有无符号的min max值
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) { printf("unsigned int max=%u\n",UIN原创 2014-08-20 23:25:06 · 746 阅读 · 0 评论 -
把字符串t复制到字符串s的尾部
#include #include void strcat(char *s,char *t);/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) { return 0;原创 2014-08-22 15:41:42 · 3255 阅读 · 0 评论 -
函数strend(s,t)
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int strend(char *s,char *t);int main(int argc, char *argv[]) { return 0;}原创 2014-08-22 16:25:06 · 2290 阅读 · 0 评论 -
指针数组将文本行排序
#include #include #define MAXLINES 5000char *lineptr[MAXLINES];int readlines(char *lineptr[],int nlines);void writelines(char *lineptr[],int nlines); void qsort(char *lineptr[],int left,int righ原创 2014-08-28 19:50:10 · 426 阅读 · 0 评论 -
C语言二维数组的定义和引用
一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量。本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义二维数组定义的一般形式是: 类型说明符 数组名[常量表达式1][常量表达式2]其中常量表达式1表示第一维下标的长转载 2014-09-06 22:23:43 · 4910 阅读 · 1 评论 -
将某年中的第几天的日期表示形式转化为某月某日的表示形式
注意:逻辑表达式的算术运算值原创 2014-09-07 19:52:28 · 1939 阅读 · 0 评论 -
(错误检查)之将某年的第几天转化为某月某日
注意:将先声明后第一eg.i,j……原创 2014-09-11 20:33:45 · 415 阅读 · 0 评论 -
isdigit()在<ctype.h>中
头文件中声明了一些测试字符的函数原创 2014-10-04 01:00:49 · 404 阅读 · 0 评论 -
自己写的程序expr,以计算从命令行输入的逆波尔表达式的值,其中每个运算符或操作数用一个单独的参数表示
#include char getch(int number,int *recorder[]);void ungetch(int unumber,int *urecorder[],char ubeforeinput);void calulate(char input,int cnumber,int *crecorder[]); int main(int argc,int *argv[])原创 2014-10-04 01:38:21 · 1907 阅读 · 0 评论 -
复杂声明的语法进行了简化
#include #include int main(void){ int type; char temp[MAXTOKEN]; while(gettoken()!=EOF) { strcpy(out,token); while((type=gettoken())!='\n') { if(type==PARENS||TYPE==BRACKETS) strca原创 2015-01-17 20:36:17 · 424 阅读 · 0 评论 -
复杂声明
#include #include #include #define MAXTOKEN 100enum{NAME,PARENS,BRACKETS};void dcl(void);void dirdcl(void);int gettoken(void);int tokentype;char token[MAXTOKEN];char name[MAXTOKEN];char dat原创 2015-01-17 20:35:24 · 380 阅读 · 0 评论 -
修改undcl函数使它在把文字转化为声明的过程中不会生成多余的圆括号
#include #include #include #define MAXTOKEN 100enum{NAME,PARENS,BRACKETS};void dcl(void);void dirdcl(void);int gettoken(void);int nexttoken(void);int tokentype;char token[MAXTOKEN];char out原创 2015-01-17 23:58:55 · 537 阅读 · 0 评论 -
undcl函数将文字描述转化为声明
#include #include int main(void){ int type; char temp[MAXTOKEN]; while(gettoken()!=EOF) { strcpy(out,token); while((type=gettoken())!='\n') { if(type==PARENS||TYPE==BRACKETS) strca原创 2015-01-17 23:42:27 · 614 阅读 · 0 评论 -
break跳出的是if还是for
break跳出的是循环for或者while与if无关,break的原创 2014-10-04 00:19:51 · 7818 阅读 · 0 评论 -
c语言中strlen的几种写法
#include #include int strlen(char *s);/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) { return 0;}int strle原创 2014-08-22 14:56:36 · 2823 阅读 · 0 评论 -
二维数组的写法
二维数组作为参数传递给函数原创 2014-09-10 09:06:41 · 1819 阅读 · 0 评论 -
错误检查(Project将某年某月的日期表示方式转化为某年中第几天的表示方式)
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) { return 0;}static char原创 2014-09-11 20:11:34 · 692 阅读 · 0 评论 -
数组名是否是指针的辨析
数组名是个常量但是当原创 2014-10-02 11:23:31 · 349 阅读 · 0 评论 -
数组名如何当指针用
当吧数组名传递给一个函数时原创 2014-10-02 11:32:15 · 957 阅读 · 0 评论 -
关于while(--t)与while(t--)最后的t的值的区分
#include #include /* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) { int t=5; while(t--){ } printf("%d",t);原创 2014-10-02 12:11:10 · 740 阅读 · 0 评论 -
命令行参数之程序(回显程序命令行参数)
注意1argc的值至少为1,当为1时,则说明程序名后面没有命令行参数。原创 2014-10-03 10:42:41 · 549 阅读 · 0 评论 -
指针数组的初始化之返回第n个月份的名字(内部static数组的一种应用)
注意:name的声明和排序原创 2014-09-11 23:44:12 · 488 阅读 · 0 评论 -
指针数组的初始化之返回第n个月份的名字(内部static数组的一种应用)续篇
#include #include char *month_name(int n);/* run this program using the console pauser or add your own getch, system("pause") or input loop *///因为返回的值是指针数组指向的第一个对象因此声名函数时必须是 指针// int main(int arg原创 2014-09-12 00:09:29 · 441 阅读 · 0 评论 -
区分二维数组与指针数组的区别
注意1指针数组最频繁的映出是存放具有原创 2014-09-12 00:17:56 · 395 阅读 · 0 评论 -
可选的查找模式
#include #include #define MAXLINE 1000int getline(char *line,int max);int main(int argc,int *argv[]){ int c; int lineno=0; int number=0; int except=0; while(--argc&&(*++argv)[0]=='-'){ swit原创 2014-10-02 16:17:30 · 331 阅读 · 0 评论 -
*++argv[0]和(*++argv)[0]
因为Int (*dayab)[13]表示声明了一个指针它指向原创 2014-10-03 10:40:58 · 560 阅读 · 0 评论 -
用指针的方式代替数组下标改写程序month_day
一.#include #include void month_day(int year,int yearday,int *pday);/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *arg原创 2014-10-03 10:43:08 · 957 阅读 · 0 评论 -
关于printf与指针数组与指向字符的指针
输出字符串 你得 告诉 printf 字符串的地址 输出整形变量 你得 用 * 来 取得 地址所指向的 内存块 中的数据 交给printf原创 2014-10-02 14:43:48 · 729 阅读 · 0 评论 -
关于break语句与goto语句的区分
break语句使之从内层循环退出到上一级循环原创 2014-10-02 11:40:48 · 517 阅读 · 0 评论 -
strncat函数
#include #include void strncat(char *s,char *t);/* run this program using the console pauser or add your own getch, system("pause") or input loop */int main(int argc, char *argv[]) { re原创 2014-08-22 17:25:36 · 752 阅读 · 0 评论 -
用指针的方式代替数组下标改写函数day_of_year
注意:题目指针的方式有原创 2014-09-12 15:14:06 · 2594 阅读 · 0 评论 -
pa=&a[0]等价于pa=a
如果pa指向数组中的某个特定元素,那么原创 2014-10-02 10:53:07 · 1529 阅读 · 0 评论 -
关于(*++argv)[0]与argc
通常处理每个可选参数之前,argc执行自减运算,原创 2014-10-02 12:04:18 · 1226 阅读 · 0 评论 -
argv是一个指针
所以他可以通过指针而非数组下标的方式处理命令行参数。原创 2014-10-02 14:17:53 · 460 阅读 · 0 评论