1、memset()清空数组
memset(a,0,sizeof(a)),在string.h中定义。
1
2、memcpy()拷贝函数
memcpy(b,a,sizeof(int)*k) 从数组a复制k个元素到数组b。
memcpy(b,a,sizeof(a)) 把a数组复制到数组b中。
1
2
3、
sprintf(buf,"%d%d%d",a,b,c);
char buf[maxn] ;
int a = 5,b = 189,c = 384959;
// 把信息输入到字符串中去,
//用法和printf()、fprintf()类似。printf()输出到屏幕,sprintf()输出到文件。
1
2
3
4
5
4、
strchr(s,c); char s[maxn]; char c;
//在s字符串中查找字符c,如果找不到就返回NULL。
1
2
5、
getchar();// 从标准输入中读取一个字符
1
6、
fgetc(fin);// 从打开的文件fin中读取一个字符。
//getchar() 相当于 fgetc(stdin)。
1
2
7、
freopen("data.in","r",stdin); // 重定向从data.in文件中读取数据
freopen("data.out","w",stdout); // 重定向从data.out文件向写入数据,用法见 数据统计(重定向版).cpp
1
2
大量数据时可以通过读取写入文件进行测试,也可以在打表时把数据输入文件读取
8、
#define LOCAL
#ifdef LOCAL
//。。。
//。。。
#endif
//如果定义了LOCAL就执行中间的代码块,否则就不执行,便于调试。
1
2
3
4
5
6
9、
FILE *fin,*fout
fin = stdin; == scanf()
fout = stdout; == printf()
fin=fopen("data.in","rb"); 从data.in文件中读取数据
fout=fopen("data.out","wb"); 向文件data.out中写入数据
fscanf(fin,”%d”,&x);
fprintf(fout,”%d”,x);
fclose(fin);
fclose(fout);
1
2
3
4
5
6
7
8
9
10
10、
isalpha() 判断字符是否是字母
isdigit() 判断字符是否是数字
isprint() 判断字符是否是可打印字符
toupper() 把字母转换成大写
tolower() 把字母转换成小写
//它们都在ctype.h头文件中定义
1
2
3
4
5
6
11、
hypot(x,y);==sqrt(x*x+y*y);
1
12、
struct Point() { int x,y;};
Struct Point a, b;
//运用typedef 更加方便简洁定义
typedef struct {int x,y;}Point;
Point a,b;
typedef long long LL;
1
2
3
4
5
6
13、
floor(sqrt(n)+0.5); //取n的算术平方根,+0.5是为了避免误差。
1
14、
lower_bound(a,a+n,x);
//该函数二分查找大于或等于x的第一个位置,一般在排序后使用。待排序/查找的元素可以放在数组里,也可以放在vector里。