8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
温馨提示:
对于已定义的函数,我们不仅要关心其用途,更要关心它的返回值类型和参数类型
本文介绍包含以下库
#include
#include
#include
#include
#include
一。ctype.h库
01
int tolower(int c)
如果是大写字符,转换为小写字符1tolower('C');
02
int toupper(int c)
如果是小写字符,转换为大写字符1toupper('a');//A
二。math.h库
01
double cos(double x) 返回余弦值
double sin(double x) 返回正弦值
double tan(double x) 返回正切值1cos(3.14);
02
double pow(double x,double y)
返回x的y次方
注意:形式参数和返回值都是double类型1pow(4.0, 3.0);//64.0
03
double ceil(double x)
返回不小于x的最小整数值1ceil(3.26);//4.0
double floor(double x)
返回不大于x的最大整数值1floor(3.26);//3.0
04
double fabs(double x)
返回x的绝对值1fabs(-3.5);//3.5
05
double round(double x)
将x四舍五入为整数1round(5.5);//6
三。stdio.h库
01
int getchar()
读取标准输入的下一个字符
02
char* gets(char *)
读取标准输入的下一行(C11标准已废除)
它的返回值和传进去的参数相同
该函数将n丢弃
03
int putchar(int)
把字符输出1putchar('A');
04
int puts(char *)
将字符串输出,并自动换行1puts("hhhhhhh");
05
int scanf(…….)
常用不解释,只强调一点
返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。(这点有时很好用)
当scanf接收到错误格式的值时,该值不会被写入变量中,相当于scanf函数无效执行(查错时可以注意这一点)
注:IO函数还有很多,期末不考,就未完待续吧。
四。stdlib.h库
01
void * malloc(size_t size)
分配size大小的空间并返回该空间的头指针1char* p = malloc(sizeof(char) * 5);
02
void free(void* ptr)
释放空间,与malloc搭配使用1free(p);
03
int abs(int n)
返回n的绝对值
想不到吧,我居然不在数学库math.h
注意:只能处理整形1abs(-4);//4
五。string.h库
这个库重要函数比较多,熟记它们对于处理字符串帮助很大
01-1
void* strchr(void *s, int c);
在s指向对象数组的前n个字符中查找是否有c,如果找到,则返回首次出现c处的指针;如果未找到,则返回NULL1
2
3char* s1 = "jakld $ hhhha d";
char* s2 = strchr(s1, '$');
puts(s2);//"$ hhhha d"
01-2
char* strstr(const char* str,const char* substr)
返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL
查找字符串时特别好用
01-3
char* strrchr(const char* str, char c)
返回最后一次出现c的位置的指针,如果s中不存在c则返回NULL
02-1
char* strcat(char* restrict s1, char* restrict s2)
把s2拷贝到s1的后面1
2
3
4char s3[100] = "aaa";
char s4[100] = "bbb";
strcat(s3, s4);
puts(s3);//"aaabbb"
02-2
char* strncat(char* restrict s1, char* restrict s2, size_t n)
把s2拷贝到s1的后面,最多拷贝n个1
2strncat(s3, s4, 2);
puts(s3);//"aaabbbbb"
03
size_t strlen(const char* str)
返回字符串的字符数1strlen(s4);//3
04-1
char* strcpy(char* dest, char* src)
将参数src字符串拷贝至参数dest所指的地址
返回参数dest的字符串起始地址
会将源字符串src的’ ’拷贝到目标空间1
2strcpy(s3+1, s4);
puts(s3);//"abbb"
04-2
char* strncpy(char* dest, const char* src, size_t num)
拷贝src字符串的前num个字符至dest
返回dest字符串起始地址
strncpy不会向dest追加’ ’1
2strncpy(s3 + 2, s4, 1);
puts(s3);//"abbb"
05-1
int strcmp(const char* str1, const char* str2)
比较字符串s1,s2,若参数s1和s2字符串相同则返回0,s1若大于s2则返回大于0的值,s1若小于s2则返回小于0的值1strcmp(s3, s4);//返回一个负数
05-2
int strncmp(const char* str1, const char* str2, size_t num)
比较字符串s1,s2,只比较前num个字符,若参数s1和s2字符串相同则返回0,s1若大于s2则返回大于0的值,s1若小于s2则返回小于0的值
06
char* strtok(char* str,const char* sep)
根据分隔符将字符串分隔成一个个片段,返回下一个分割后的字符串指针,如果已无从分割则返回NULL1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16char b[100] = "There is a good man";
char* c = " ";
char* token = strtok(b, c);
while (token != NULL) {
printf("token is : ");
puts(token);
token = strtok(NULL, c);
}//该例将字符串b用空格分隔为五个单独的字符串
//输出结果:
/*
token is : There
token is : is
token is : a
token is : good
token is : man
*/
07
int fputs(const char *str, FILE *stream)
把字符串写入到指定的流 stream 中,但不包括空字符。
使用时将第三个实参写成 stdout (即标准输出)就可以向控制台输出字符串
fputs和puts的一个区别在于,它不会在输出后自动换行1fputs(s1, stdin);
08
char *fgets(char *str, int n, FILE *stream)
从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,它会停止。
使用时将第三个实参写成 stdin (即标准输入)就可以从控制台接收字符串
fgets和gets的一个区别在于,它会读取换行符