如何在c中过滤数组?

时间:2012-05-14 07:09:15

标签: c string filter

我正在使用Zigbee在Keil C51上写作。

Serial_txString0("AT+UCAST:000D6F0000BB769D=StartGreen");        
tx_port0(0x0D);

例如,我将收到“AT + UCAST:000D6f0000BB769D = StartGreen”,我想过滤它只能获得“StartGreen”。

2 个答案:

答案 0 :(得分:4)

怎么样:

char *eq = strrchr(str, '=');
if (eq)
    printf("%s\n", eq + 1);

答案 1 :(得分:0)

从一个例子来看,我无法根据您想要过滤的内容来判断。这样的事情是否足够(在=之后提取字符串的部分)?

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>