2012-12-03 13 views
8

Wie schreibe ich unten Code in C. und ist ihre eingebaute Funktion zum Überprüfen der Länge eines Arrays.Wie überprüft man, ob sich ein String in einem Array von Strings in C befindet?

Python-Code

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

if s in x: 
    //Code 
+0

möglich duplicate von http://stackoverflow.com/questions/8848940/search-a-string-in-an-array-of-strings –

+0

Dieser Beitrag ist Python in C übersetzen, so dass es kein Duplikat sein kann einer Frage gestellt in C. –

+0

@CareyGregory Warum nicht? Das OP muss das gesamte Programm in C umschreiben, der ursprüngliche Python-Code ist nicht hilfreich. – Lundin

Antwort

10

Es gibt keine Funktion Länge des Arrays zur Überprüfung in C. Allerdings ist, wenn das Array in dem gleichen Gültigkeitsbereich deklariert wird als in dem Sie überprüfen möchten, können Sie folgendes tun

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

Sie müssen durch x iterieren und auf jedem Element des Arrays x do strcmp, zu überprüfen, ob s gleich wie eines der Elemente von x ist.

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

Sie haben diese Änderung gerade rechtzeitig vorgenommen. –

+0

@CareyGregory - mein ursprünglicher Beitrag war nicht falsch - dieser Weg ist keine Funktion. Und es funktioniert nur, wenn das Array im selben Bereich deklariert ist. – user93353

+2

Ich habe nicht gesagt, dass Ihr Beitrag falsch war. das war es nicht. Es war einfach weniger als es hätte sein können, aber du hast es repariert. Alles ist gut, ja? :-) –

7

So etwas?

#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

Es gibt eine Funktion zum Auffinden der Stringlänge. Es ist strlen von string.h

Und dann könnten Sie die strcmp aus dem gleichen Header verwenden, um Strings zu vergleichen, genau wie die anderen Antworten sagen.

Verwandte Themen