Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C] Funzione strspn()

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    6

    [C] Funzione strspn()

    Ciao a tutti, ho quest'altro problema...dovrei ridefinire la funzione strcspn in modo che mi restituisca la lunghezza massima del segmento iniziale della stringa str1 che contiene soltanto i caratteri inclusi nella stringa str2, la mia difficoltà sta nell'elaborare l'algoritmo che mi permetta questo confronto e che mi restituisce il numero finale di caratteri...per il momento sto procedendo in questo modo:

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

    char *_strcspn_(const char *, const char *);

    main() {

    char *str1;
    str1=(char *) malloc(100 * sizeof(char));
    char *str2;
    str2=(char *) malloc(100 * sizeof(char));
    int n;

    scanf("%s", str1);
    scanf("%s", str2);

    printf("%d", _strcspn_(s1, s2));

    char *_strcspn_(const char *s1, const char *s2);

    ...algoritmo ?!?!?!?


    io pensavo di creare 2 cicli for in modo da confrontare il primo carattere di str1 con tutti gli altri di str2, se ce ne sono continuare successivamente con il secondo carattere str1 e confrontarlo con i caratteri di str2 e cosi via, se al primo carattere di str1 non corripsonde nessun carattere di str2 restituire 0, oppure non so se esiste una soluzione logica migliore....

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ci fai qualche esempio di quello che vorresti ...?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    6
    praticamente se str1 è la stringa 'albero', ed str2 è la stringa 'abcd' allora il prefisso di str1 che contiene caratteri di str2 è 'ab' ed ha lunghezza 2 (2 deve essere il valore che la funzione deve restituire)....

  4. #4
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    codice:
    #include <stdio.h>
    
    int _strcspn_(char *, char *);
    
    int main() {
    
    char *str1, *str2;
    str1=(char *) malloc(100 * sizeof(char));
    str2=(char *) malloc(100 * sizeof(char));
    scanf("%s", str1);
    scanf("%s", str2);
    
    
    printf("%d", _strcspn_(str1, str2));
    
    return 0;}
    
    int _strcspn_(char *s1, char *s2){
    int i,j, trovato;
    
     for(i=0; i<strlen(s1); i++){
        trovato=0;
        for (j=0; j<strlen(s2); j++){
           if (s1[i]==s2[j]){
              trovato=1;
           }
        }
        if (trovato!=1)
           return i;
     }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.