<stdlib.h>(1) <stdlib.h>(2)
malloc():用来动态地分配内存空间,分配成功返回指向该内存的地址,失败则返回 NULL。
- 前面的 (int*) 或者 (char*) 表明数据类型
//不出现方括号 //将字符串复制到 str_start char *str_start = malloc(sizeof(char)*1024); strcpy(str_start, "9 12 5 4 2 b 7 11 3 6 10 13 14 1 8 15 ");
realloc():重新分配内存空间
atoi():把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。
- 如果参数不是可转化的数字,则会转为0。
- atoi("b") = 0
itoa():将整型值转换为字符串。(只在 Windows 下,不在 Linux 下,后者使用 sprintf)
<stdio.h>
scanf():从标准输入 stdin 读取格式化输入。
- 可以输入数字,字符串,字符等
- &a、&b、&c 中的 & 是地址运算符,分别获得这三个变量的内存地址。
- %d%d%d 是按十进值格式输入三个数值。输入时,在两个数据之间可以用一个或多个空格、tab 键、回车键分隔。
- 在用 %c 输入时,空格和"转义字符"均作为有效字符。
gets():C 库函数 char *gets(char *str) 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
<string.h>
strtok():C 库函数 char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串,delim 为分隔符。
- 该函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针。
- 【C语言】浅谈strtok()与NULL
strcmp():C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
- 通过 == 来判断的话,是需要地址也一致的
- 如果返回值 < 0,则表示 str1 小于 str2。
- 如果返回值 > 0,则表示 str2 小于 str1。
- 如果返回值 = 0,则表示 str1 等于 str2。
strcpy():C 库函数 char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制到 dest。
-
该函数返回一个指向最终的目标字符串 dest 的指针。
不出现数组形式的字符串:
#include <string.h> #include <stdio.h> #include <stdlib.h> int main() { char *str = malloc(sizeof(char) * 100); strcpy(str, "9 12 5 4c 2 b 7 11 3 6 10 13 14 1 8 15 "); //char str[100] = "lsdkjflsdjflsdjflkdsjfkl"; //printf("%s", str); printf("%s\n", str); return 0; }
<math.h>
ceil():C 库函数 double ceil(double x) 返回大于或等于 x 的最小的整数值。返回值为 double。