使用微处理器,我内存不足,并且必须以非常有效和安全的方式执行此操作。
所以我有一些来自服务器的数据,我必须找到它的标头。因此,例如:
char *meida="+IPD,0,206:GET /setWifi:home:0545881255 HTTP/1.1 Host: 192.168.4.1" ;
我只需要获取
setWifi:home:0545881255
。strstr
查找句子中字符串的出现。如何使用它找到两个单词之间的句子? 最佳答案
现在,EDIT提取两个关键字之间的短语。
假设您读取的数据不是字符串文字,则可以对其进行修改。此代码查找第一个关键字的位置,跳过它,然后找到下一个关键字,并截断字符串。
#include <stdio.h>
#include <string.h>
int main (void){
char meida[] ="+IPD,0,206:GET /setWifi:home:0545881255 HTTP/1.1 Host: 192.168.4.1";
char *keyworda = "GET /";
char *keywordb = " HTTP/";
char *aptr, *bptr;
aptr = strstr(meida, keyworda);
if (aptr != NULL) {
aptr += strlen(keyworda); // skip past first keyword
bptr = strstr(aptr, keywordb);
if (bptr != NULL) {
*bptr = '\0'; // truncate
printf("%s\n", aptr);
}
}
return 0;
}
程序输出:
setWifi:home:0545881255