strcmp会根据ASCII编码依次比较两个字符串的每一个字符,直到出现找不到的字符,或者到达字符串的末尾(\0)。
strcmp是比较两个字符串,用法如下:
原函数:
int strcmp(const char *, const char *);
举例:
int res;
char s1='a';
char s2='b';
res=strcmp(s1,s2);
printf("res= %d\r\n",res);
strcmp对返回值定义: 如果两个相比较的两个字符串相等,则返回0; 如果相比较的两个字符串不相等,若返回值>0,则s1>s2;若返回值<0,则s12、strtok
strtok分解字符串的函数。
原函数: char *strtoks(char *str, char *delim); str--要被分解的一组字符串; delim--分隔符字符串举例: char str="hello!\r\n"; char s; s=strtok(str,"!"); printf("%s\n",s); 打印为hello
3、atoi
atoi是把字符串转化为一个整型,char型转int型。
原函数: int atoi(const char *s)举例: char *ptr="-13.356"; int a; a=atoi(ptr); printf("a= %d\r\n",a); 打印结果a=-13
4、condition ? X:Y三目运算符
条件运算符,如果condition为真,则值为X,否则为Y。
举例: int a=10; int b=20; a>b ? printf("a最大"):printf("b最大") 打印结果:b最大
5、 -> 运算符
如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,要用”->” 。
举例: struct Data { int a,b,c; } struct Data *p; struct Data A={3,5,8}; int x; p=&A; x=p->a; printf("x=%d\r\n",x); 打印结果:x=3
6、ifdef endif 调试
使用ifdef endif打印调试信息。
include "stdio.h" #define CONFIG_DEBUG int main() { #ifdef CONFIG_DEBUG printf(打印调试信息""); #endif while { ...... } }
7、memset
memset复制字符到直到字符串的前n个字符。
原函数: void *memset(void *str,int c,size_t n)举例: char str[50]; strcpy(str,"hello,world!"); memset(str,'$',7); printf(str); 打印结果:$$$$$$$worid!
8、回调函数、钩子函数
涉及到结构体里的函数指针,以及结构体里的回调函数。等我理解了,单独写。
9、0U、1U---”奇怪写法“
在C语言中,数值常数默认int型,当数值常量后面带有符号(如:U/UL/f)时,代表指定了数据类型。
0U表示无符号整型0;1U表示无符号整型1。
例如:浮点型常数1.245f这种表示方式。
10、memcpy
字符串复制函数。
函数原型: void *memcpy(void *str1,const void *str2,size_t n); str1---指向用于存储复制内容的目标数值,类型强制转换为void*指针 str2---指向要复制的数据源,类型强制转换为void*指针 n---要背复制的字节数举例: char *data =(char*)malloc(sizeof(char)*10); memcpy(data,"0123456789",10); puts(data); memcpy(data,"aaaaa",5); puts(data); free(data); 打印结果: 0123456789 aaaaa56789
11、malloc
分配多大字节的内存块,当内存不使用时,需要使用free释放掉内存空间。
函数原型: void *malloc(unsigned int num_bytes) 如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。举例: char *p; p=(char *)malloc(100); if(p) { printf("空间分配成功"); } free(p);
12、枚举 enum
枚举enum,使用{}括起来的一组枚举常量,每个枚举常量可以用一个标识符来表示,也可以指定一个整数值,如果没有指定,默认从0开始递增。
格式:
enum 枚举名 {枚举元素1,枚举元素2,......};enum和typedef一起用,定义一个枚举,给这个枚举类型起个外号。
举例: typedef enum{ monkey=0U, fish, chicken, }num;
13、typedef
typedef是为现有的类型起了一个别名,注意:它没有产生新的类型,就像一个外号一样。
比如:有只叫小花的小猫,人们可以叫它小花,也可以叫它猫猫。