簡體   English   中英

在 c 中搜索 char* 以查找 char* 數組的成員

[英]Searching a char* for a member of char* array in c

我一直在搜索字符串以查找其中是否存在數組成員。

例如,我試圖找到這些運算符之一: char* Operators[2] = {"+", "-"};

將在此字符串中string check = "this+that";

每當您需要檢查字符串中的 substring 時,您需要strstr() function 來自string.h 聲明是:

char *strstr(const char *haystack, const char *needle);

其中haystack是完整的字符串(在您的情況下check ), needle是您要查找的 substring (在您的情況下是Operators的元素)。 由於您有多個要測試的子字符串,因此您需要遍歷每個調用strstr()的 substring 以檢查是否在check中找到該運算符。 您可以通過以下方式簡單地做到這一點:

#include <stdio.h>
#include <string.h>

int main (void) {
    
    char *check = "this+that";                              /* pointer to string literal */
    char *Operators[] = {"+", "-"};                         /* array of pointers */
    size_t nstrings = sizeof Operators/sizeof *Operators;   /* no. of elements */
    
    for (size_t i = 0; i < nstrings; i++) {                 /* loop over each Operators */
        char *p = strstr (check, Operators[i]);             /* is it substring of check? */
        if (p != NULL)                                      /* if substring found */
            printf ("Operators[%zu] %c in check\n", i, *p); /* output result */
    }
}

示例 Output

$ ./bin/operators
Operators[0] + in check

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM