[英]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.