一、 字符串操作
头文件:
#include <string.h>
#include <ctype.h>
1. 从键盘接收字符串,长度为size
fgets(char[] buf, int size, stdin);
注意:得到的字符串最后是以0结尾,占用一个空间
2. 字符串处理,小写转化为大写
if(isalpha(buf[i]))
buf[i]=toupper(buf[i]);
3. 判断字符串中是否有相等字符
strchr(s, buf[i])
4. 以某个顺序将字符保存下
sprintf(buf, "%d%d%d%d%d", a,b,c,d,e);
二、函数和递归
1. 数学函数
判断素数
#include <math.h>
#include <assert.h>
int is_prime(int x)
{
int i,m;
// 宏定义,如果不满足条件,直接中断执行
assert(x>=0);
if(x==1)return 0;
//floor取整,开根号计算素数即可
m=floor(sqrt(x)+0.5);
for(i=2;i<=m;i++)
if(x%i==0)return 0;
return 1;
}
2. 指针
注意参数前面加&表示的是变量的地址
错误写法:(当t指向的空间只读的时候,将发生错误)
void swap(int*a, int*b)
{
int *t;
*t = *a;
*a = *b;
*b = *t;
}
3. 堆栈
使用递归时要注意防止段溢出。
可执行文件中,正文段存储指令,数据段存储已初始化的全局变量,BSS段存储未赋值的全局变量所需的空间。
建议把较大的数组放在main函数外,也就是把数组存放在正文段