Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    come cerco una sottostringa in una stringa in c?

    in codice è il seguente,


    codice:
    include<stdio.h>
    include<string.h>
    main
    {
    #define w 100
    char bene[]={"bene"};
    char sottostringa[]={"mi fa male"};
    char scelta[w][w], caso[w];
    int i,s[w];
    i=0;
    printf ("\n come stai? bene o male?\t");
    scanf ("%s", scelta[i]);
    s[i]=strcmp (scelta[i],bene); 
    if (s[i]==0)
    {
        printf ("\nmi fa piacere, anche io");
    }
    else
    {
        printf ("\nmi dispiace come mai?\t");
        scanf ("%s", caso[i]);

    ora vorrei controllare che se nella stringa che inserisce è presente la sottostringa "mi fa male"... se è possibile anche come istruzione in un if così che se è presente faccio uscire un messaggio altrimenti un altro... chi mi aiuta? grazie
    Ultima modifica di LeleFT; 03-08-2017 a 13:38 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    ho provato ma si blocca... penso che non ho capito come fare...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Quindi facci vedere come fai
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Quindi facci vedere come fai
    ho dichiarato un puntatore all'inizio e poi ho fatto
    int *controllo;
    [...]
    controllo=strstr(caso[i],sottostringa);

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Nella documentazione che ti ha linkato oregon c'è scritto che strstr() restituisce un char *.
    Tu assegni il risultato della funzione ad un int *.

    E già qui non si capisce perchè... poi cosa ci fai con quel puntatore a int?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    perchè dopo mi serve nell'if qualcosa da confrontare... comunque ho trovato l'errore facevo
    controllo=strstr(caso[i],sottostringa);
    ma se faccio
    controllo=strstr(caso[i],"sottostringa"); mi va...



  8. #8
    grazie dell'aiuto

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464
    Devi usare un puntatore a char

    char *ris;

    ris = strstr(caso[i], sottostringa);

    senza le "

    Studia bene la documentazione ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.