算法学习

常用命令以及头文件

2017-06-03  本文已影响0人  惊鸿指尖

一、 字符串操作

头文件:

#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函数外,也就是把数组存放在正文段

上一篇下一篇

猜你喜欢

热点阅读