2012-12-03 18 views
8

Come scrivere sotto il codice in C. ed è la loro funzione incorporata per controllare la lunghezza di un array.Come verificare se una stringa si trova in una serie di stringhe in C?

Python Codice

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

if s in x: 
    //Code 
+0

possibile duplicato di http://stackoverflow.com/questions/8848940/search-a-string-in-an-array-of-strings –

+0

Questo post è Python che traduce in C, quindi non può essere un duplicato di una domanda posta in C. –

+0

@CareyGregory Perché no? L'OP deve riscrivere l'intero programma in C, il codice Python originale non è utile. – Lundin

risposta

10

Non esiste una funzione per controllare la lunghezza di array in C. Tuttavia, se la matrice è dichiarato nello stesso ambito di applicazione in cui si desidera controllare, è possibile effettuare le seguenti operazioni

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

devi scorrere x e do sTRCMP su ogni elemento della matrice x, per verificare se s è uguale a uno degli elementi di 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

Hai apportato la modifica appena in tempo. –

+0

@CareyGregory - il mio post originale non era errato - in questo modo non è una funzione. E funziona solo se la matrice è dichiarata nello stesso ambito. – user93353

+2

Non ho detto che il tuo messaggio non era corretto; non lo era. Era semplicemente inferiore a quello che avrebbe potuto essere, ma tu l'hai risolto. Quindi tutto va bene, si? :-) –

7

Qualcosa di simile ??

#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

C'è una funzione per trovare la lunghezza della stringa. È strlen da string.h

E quindi è possibile utilizzare lo strcmp dalla stessa intestazione per confrontare le stringhe, proprio come dicono le altre risposte.

Problemi correlati