【书中示例】--《C程序设计语言》第二章:类型、运算符、表达式

来源:互联网 发布:淘宝扣分规则2017 编辑:程序博客网 时间:2024/06/11 19:55
/*  string(),返回字符串s的长度  */int string(char s[]){int i;for (i = 0;s[i] != '\0';i++);return i;}/*  判断是否为闰年  */if ((0 == year % 4 && 0 != year % 100) || 0 == year % 400)printf("%d is a leap year", year);//是闰年/*  atoi(),将字符串s转换为对应的int型  *///使用此函数有个前提:字符串s中全是数字,无其他符号;否则转化的整形会有截断int atoi(char s[]){int i, n;n = 0;for (i = 0;s[i] >= '0'&&s[i] <= '9';++i)n = n * 10 + (s[i] - '0');return n;}/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1、s[i]-'0' 可以计算出该字符所对应的数字值2、此函数功能的缺陷:   1.数字是无符号数   2.字符串中无法有空白符++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*  lower(),把大写字母转化成小写字母 (只限与ASCII字符集)  *///如果该字符不是大写字母,则返回该字符本身char lower(char c){if (c >= 'A'&&c <= 'Z')return c - 'A' + 'a';//将大写字母变成小写字母elsereturn c;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++1.if (c >= '0'&&c <= '9') 可以用函数isdigit(c)2.大写字母变小写字母 可以用函数tolower(c)3.以上两个函数都在头文件<ctype.h>中++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*  rand(),生成伪随机数  *///next全局变量为种子unsigned long int next = 1;int rand(void){next = next * 1103515245 + 12345;return (unsigned int)(next / 65536) % 32768;}/*  srand(),为rand()设置随机种子  */void srand(unsigned int seed){next = seed;}/*  squeeze(s,c),删除字符串s中出现的所有字符c  */void squeeze(char s[], char c)//传入了字符串头指针,在函数内的操作,会对字符串造成改变(引用传递){int i, j;for (i = j = 0;s[i] != '\0';i++)if (s[i] != c)s[j++] = c;s[j] = 0;}/*++++++++++++++++++++++++++++++++++++++++++++++++++++1.s[j++]=c;相当于:  s[j]=c;  j++;2.适当运用前置、后置运算符++ -- ,可以使代码更加简洁明了+++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*  srecat(),将字符串t接到字符串s的尾部;假设s的空间足够大  */void srecat(char s[], char t[]){int i, j;i = j = 0;while (s[i] != '\0')//找到字符串s的末尾++i;while ((s[i++] = t[j++]) != '\0')//拷贝t;}/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++1.注意拷贝操作:  s[i++]=t[j++];2.赋值运算符返回它左边的值.++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

阅读全文
0 0
原创粉丝点击