以有效的方式在字符串之间查找字符串

-3 c

使用微处理器,我的内存不足,我必须以非常有效和安全的方式执行此操作.

所以我有一些来自服务器的数据,我必须找到它的标题.例如:

char *meida="+IPD,0,206:GET /setWifi:home:0545881255 HTTP/1.1  Host: 192.168.4.1" ;
Run Code Online (Sandbox Code Playgroud)

我只需要得到setWifi:home:0545881255.

strstr在句子中查找字符串的出现.我怎样才能用它来找到2个单词之间的句子?

Wea*_*ane 5

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;
}
Run Code Online (Sandbox Code Playgroud)

节目输出:

setWifi:home:0545881255
Run Code Online (Sandbox Code Playgroud)

  • @WeatherVane撤回我的downvote,让一个可怜的问题"感染"你的尝试有助于回答是不公平的. (2认同)