我正在使用 Zigbee 在 Keil C51 中编写。
Serial_txString0("AT+UCAST:000D6F0000BB769D=StartGreen");
tx_port0(0x0D);
例如,我将收到“AT+UCAST:000D6f0000BB769D=StartGreen”,我想过滤它以仅获得“StartGreen”。
怎么样:
char *eq = strrchr(str, '=');
if (eq)
printf("%s\n", eq + 1);
从一个示例中,我无法根据您要过滤的内容来判断。这样的事情就足够了吗(在 之后提取字符串的一部分=
)?
char* filter(char* input) {
int i = 0;
while (input[i] && input[i] != '=') i++;
return &input[i + 1];
}
请注意,这不会复制字符串,仅引用它的右侧部分。如果您想实际提取过滤后的部分...
void filter(char* input, char* output) {
int i = 0;
while (input[i] && input[i] != '=') i++;
strcpy(output, &input[i + 1]);
}
...使用strcpy
在<string.h>
.