由于本学期计算机网络和OS课都要大量使用到C语言编程,而当时入学时对C的了解并没有这么深刻,所以这个学期相当于重新学习,在此记录。
assert
:<assert.h>
头文件,当assert内容不为真时停止报错atoi
是windows才有的函数,Linux下直接用sprintf
strchr
:匹配字符串中首次出现的指定字符
char* strchr(const *s, int c)
s
字符串中第一个出现参数c
的地址,然后将该字符出现的地址返回0
strstr
:字符串匹配,在一个字符串中查找指定的字符串
char* strstr(const char *haystack, const char *needle)
strstr()
会从字符串haystack
中搜寻字符串needle
,并将第一次出现的地址返回strtok
:字符串分割函数
char *strtok(char *s, const char *delim);
s
为要分解的字符串,delim
为分隔符字符串strtok()
用来将字符串分割成一个个片段。参数s
指向欲分割的字符串,参数delim
则为分割字符串中包含的所有字符。当strtok()
在参数s
的字符串中发现参数delim
中包含的分割字符时,则会将该字符改为\0
字符。在第一次调用时,strtok()
必须给予参数s
字符串,往后的调用则将参数s
设置成NULL
。每次调用成功则返回指向被分割出片段的指针,如无从分割则返回NULL
。strsep
: https://www.cnblogs.com/wkfvawl/p/9042695.html这是非常常用的操作。
// #include <time.h>
time_t t;
struct tm* lt;
time (&t);
lt = localtime (&t); // get current time
// lt->tm_year+1900, lt->tm_mon, lt->tm_mday
// lt->tm_hour, lt->tm_min, lt->tm_sec
通过strftime
可以格式化时间字符串。
已包含于头文件<stdio.h>
中,可参见一文。
unsigned char buffer[10];
FILE *ptr;
ptr = fopen("test.bin","rb"); // r for read, b for binary
fread(buffer,sizeof(buffer),1,ptr); // read 10 bytes to our buffer
FILE *write_ptr;
write_ptr = fopen("test.bin","wb"); // w for write, b for binary
fwrite(buffer,sizeof(buffer),1,write_ptr); // write 10 bytes from our buffer
详情见官方参考文档