2012-12-03 138 views
8

如何在C中编写下面的代码,并且它们是用于检查数组长度的任何内置函数。如何检查一个字符串是否在C中的字符串数组?

Python代码

x = ['ab', 'bc' , 'cd'] 
s = 'ab' 

if s in x: 
    //Code 
+0

可能的重复http://stackoverflow.com/questions/8848940/search-a-string-in-an-array-of-strings –

+0

这篇文章是Python翻译为C,所以它不能重复在C中提出的问题。 –

+0

@CareyGregory为什么不呢? OP必须将整个程序重写为C,原始的Python代码没有帮助。 – Lundin

回答

10

有在C.检查阵列的长度。然而,如果阵列在相同的范围内,你要检查没有声明功能,你可以做以下

int len = sizeof(x)/sizeof(x[0]); 

您必须通过x遍历并对数组x中的每个元素执行strcmp,以检查s是否与x的某个元素相同。

char * x [] = { "ab", "bc", "cd" }; 
char * s = "ab"; 
int len = sizeof(x)/sizeof(x[0]); 
int i; 

for(i = 0; i < len; ++i) 
{ 
    if(!strcmp(x[i], s)) 
    { 
     // Do your stuff 
    } 
} 
+0

您刚刚完成编辑。 –

+0

@CareyGregory - 我原来的帖子没有错 - 这种方式不是功能。它只有在数组在同一范围内声明时才有效。 – user93353

+2

我没有说你的帖子是不正确的;它不是。它只是比它本来可以减少,但你修好了。所以一切都很好,是吗? :-) –

7

像这样?

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

int main() { 
    char *x[] = {"ab", "bc", "cd", 0}; 
    char *s = "ab"; 
    int i = 0; 
    while(x[i]) { 
     if(strcmp(x[i], s) == 0) { 
      printf("Gotcha!\n"); 
      break; 
     } 
     i++; 
    } 
} 
0

有一个查找字符串长度的函数。这是strlenstring.h

然后你可以使用strcmp从相同的头来比较字符串,就像其他答案说。

相关问题