Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    [C] ricerca sequenza di caratteri in stringa

    ciao a tutti
    ho questo problemino : leggo 2 stringhe, stringa1 (linghezza massima 50 car) e stringa 2 (lunghezza massima 10 caratteri).
    devo ricercare la sequenza di caratteri contenuta in stringa2 come sottosequenza di caratteri in stringa1.

    ho fatto in questo modo, ma non so se sia corretto

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    /*
     *
     */
    int main() {
    
    
        char stringa1[50];
        char stringa2[10];
        char stringa3[10];
    
        int i,v;
    
        printf("Inserisci la prima stringa : ");
        scanf("%s", stringa1);
    
        printf("Inserisci la seconda stringa : ");
        scanf("%s", stringa2);
    
        printf("Inserisci la terza stringa : ");
        scanf("%s", stringa3);
    
        v = size_t strspn (const char *stringa1, const char stringa2);
    
        for (i = 0; i < v; i++){
            if (stringa1[i] == stringa2[i]){
                printf("%c", stringa1[i]);
            }
        }
    
    
        return 0;
    }
    il dubbio è nell'utilizzo della funzione size_t strspn, che dovrebbe resituirmi il numero dei valori in comune tra le 2 stringhe (v che mi serve per limitare il ciclo for)

    potete darmi suggerimenti?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    qualcuno di voi conosce la funzione

    codice:
    size_t strspn (const char *stringa1, const char *stringa2);
    potete indicarmi la libreria del C dove è indicata questa funzione ?
    grazie

  3. #3
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da jurij7
    qualcuno di voi conosce la funzione

    codice:
    size_t strspn (const char *stringa1, const char *stringa2);
    potete indicarmi la libreria del C dove è indicata questa funzione ?
    grazie
    string.h
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da jurij7
    qualcuno di voi conosce la funzione
    http://www.cplusplus.com/reference/c...string/strspn/
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    ciao a tutti..ho reso la fase di ricerca di caratteri presenti in 2 stringhe come funzione
    ma non probabilmente sbaglio nel passaggio degli argomenti...potete aiutarmi?

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    /*
     *
     */
    
    char ricerca (char str1, char str2);
    
    int main() {
    
    
        char stringa1[50];
        char stringa2[10];
        char stringa3[10];
    
        
    
        printf("Inserisci la prima stringa : ");
        scanf("%s", stringa1);
    
        printf("Inserisci la seconda stringa : ");
        scanf("%s", stringa2);
    
        printf("Inserisci la terza stringa : ");
        scanf("%s", stringa3);
    
        printf("%c", ricerca(stringa1,stringa2));
    
        
    
    	system("PAUSE");
    
        return 0;
    }
    
        char ricerca (char str1, char str2)
    
        {
            int v,i;
    
            v = strspn (str1, str2);
    
           for (i = 0; i < v; i++){
               if (str1[i] == str2[i]){
                   return (str1[i]);
               }
          }
        }

  6. #6
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da jurij7
    ciao a tutti..ho reso la fase di ricerca di caratteri presenti in 2 stringhe come funzione
    ma non probabilmente sbaglio nel passaggio degli argomenti...potete aiutarmi?

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    /*
     *
     */
    
    char ricerca (char str1, char str2);
    
    int main() {
    
    
        char stringa1[50];
        char stringa2[10];
        char stringa3[10];
    
        
    
        printf("Inserisci la prima stringa : ");
        scanf("%s", stringa1);
    
        printf("Inserisci la seconda stringa : ");
        scanf("%s", stringa2);
    
        printf("Inserisci la terza stringa : ");
        scanf("%s", stringa3);
    
        printf("%c", ricerca(stringa1,stringa2));
    
        
    
    	system("PAUSE");
    
        return 0;
    }
    
        char ricerca (char str1, char str2)
    
        {
            int v,i;
    
            v = strspn (str1, str2);
    
           for (i = 0; i < v; i++){
               if (str1[i] == str2[i]){
                   return (str1[i]);
               }
          }
        }
    char ricerca (char str1, char str2); direi che nn va bene così passi un carattere per ogni argomento meglio char ricerca (char* str1, char* str2);
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    ho fatto in questo modo

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    /*
     *
     */
    
    char ricerca (char *str1, char *str2);
    
    int main() {
    
    
        char stringa1[50];
        char stringa2[10];
        char stringa3[10];
    
        
    
        
    
        printf("Inserisci la prima stringa : ");
        scanf("%s", stringa1);
    
        printf("Inserisci la seconda stringa : ");
        scanf("%s", stringa2);
    
        printf("Inserisci la terza stringa : ");
        scanf("%s", stringa3);
    
        printf("%c", ricerca(stringa1,stringa2));
    
       
        
    
    	system("PAUSE");
    
        return 0;
    }
    
        char ricerca (char *str1, char *str2)
    
        {
            int v,i;
    
            v = strspn (str1, str2);
    
           for (i = 0; i < v; i++){
               if (str1[i] == str2[i]){
                   return (str1[i]);
               }
          }
        }
    ma mi restituisce solo la prima occorrenza..cioè il pirmo carattere in comune..come mai?

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    se metti un return è ovvio che appena trova la prima esca dalla funzione.. se le vuoi tutte devi ritornare un insieme di char (un array insomma) e fare la ricerca ricorsiva

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    ho fatto in questo modo...ma mi stampa caratteri errati
    dove sbaglio?

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    /*
     *
     */
    
    char ricerca (char *str1, char *str2);
    
    int main() {
    
    
        char stringa1[50];
        char stringa2[10];
        char stringa3[10];
        char array[10];
    
        int i,v;
        
    
        
    
        printf("Inserisci la prima stringa : ");
        scanf("%s", stringa1);
    
        printf("Inserisci la seconda stringa : ");
        scanf("%s", stringa2);
    
        printf("Inserisci la terza stringa : ");
        scanf("%s", stringa3);
    
         v = strspn (stringa1, stringa2);
    
        for (i = 0; i < v; i++){
            array[i] = ricerca(stringa1,stringa2);
        }
    
         for (i = 0; i < v; i++){
            printf("%c",array[i]);
        }
    
       
        
    
    	system("PAUSE");
    
        return 0;
    }
    
        char ricerca (char *str1, char *str2)
    
        {
            int v,i;
            char array[10];
    
            v = strspn (str1, str2);
    
           for (i = 0; i < v; i++){
               if (str1[i] == str2[i]){
                   array[i] = str1[i];
               }
          }
           return array;
        }

  10. #10
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    ci vuole un doppio for.. il primo cicla le occorrenze nel primo array mentre il secondo cicla quelle nel secondo array

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 © 2025 vBulletin Solutions, Inc. All rights reserved.