/* 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';//将大写字母变成小写字母
else
return 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.赋值运算符返回它左边的值.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
【书中示例】--《C程序设计语言》第二章:类型、运算符、表达式
最新推荐文章于 2025-08-12 21:23:02 发布