从SRResNet到SRGAN:手把手拆解GAN如何‘教会’网络生成更逼真的超分细节
2026/6/10 14:34:21
strtok = 字符串切割函数
作用:把一长串字符串,按照你指定的符号,切成一段一段的小字符串。
比如:
"LED,ON,1"用,切割 → 切成
"LED" "ON" "1"char*strtok(char*str,constchar*delim);,:\r\n)#include<string.h>#include<stdio.h>intmain(){charbuf[]="LED,ON,1";// 要切割的字符串char*token;// 存放切出来的片段// 第一次调用:传入字符串 + 分隔符token=strtok(buf,",");printf("第1段:%s\n",token);// LED// 第二次调用:传入 NULL + 分隔符token=strtok(NULL,",");printf("第2段:%s\n",token);// ON// 第三次调用token=strtok(NULL,",");printf("第3段:%s\n",token);// 1}输出:
第1段:LED 第2段:ON 第3段:1用来解析串口指令!
比如串口收到:
"LED,ON,1" "LED,OFF,2" "MOTOR,SPEED,500"用 strtok 切割后:
这就是你那个命令解析框架的核心!
它会把分隔符变成 \0
所以不能传常量字符串!
strtok("LED,ON,1",",");// ❌ 崩溃!必须用数组:
charbuf[]="LED,ON,1";// ✅ 正确strtok(buf,",");裸机 STM32 随便用,RTOS 不要用!
"LED,,ON" → 切成 LED 和 ONcharbuf[]="LED,ON,1";char*object=strtok(buf,",");// "LED"char*cmd=strtok(NULL,",");// "ON"char*param=strtok(NULL,",");// "1"然后你就可以判断:
字符串切割神器,把长串按符号切成小段。
strtok(字符串, 分隔符)strtok(NULL, 分隔符)会修改原始字符串,必须用 char[],不能用常量字符串!