Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    1

    [C] Un problemuccio con le stringhe...

    Salve gente, allora, il problema è il seguente, vi sarei grato se mi aiutaste a risolverlo.

    Dunque, quello che devo fare è copiare alcuni carrateri presenti in una stringa, in un'altra stringa. Siccome non sono tutti i caratteri che devono essere copiati, ovviamente la strcpy non va bene. Ho provato anche con altre funzioni, tra cui una che copia tutti i caratteri fino a un dato punto della stringa, ma nessuna di queste ha risolto il problema.

    Nel mio caso, devo copiare tutte le vocali. Quindi, una volta definita la stringa: char voc[10]={'A','a','E','e', ecc...}, la condizione, dopo un for, è

    if(string[ind]==voc[ind1])
    ????????

    Ora, cosa dovrei mettere al posto dei punti interrogativi per fare quello che vi ho chiesto?

    Vi ringrazio anticipatamente.

  2. #2
    Non so se ti può essere d'aiuto.. potresti fare una serie di if e confrontare il singolo char con "a" "e"... ecc.. attaccarli ad una stringa e.. basta !
    Spero di averti dato un'idea !
    Ciao

  3. #3
    Ciao potresti fare che copiarla direttamente, tipo:

    char original[NCHAR];
    char newString[NCHAR];
    int pos = 0;

    for(int i = 0; i < NCHAR; i++)
    {
    if( IsVocale(original[i]))
    {
    newString[pos] = original[i];
    pos++;
    }
    }

    poi quando hai finito metti la fine della stringa si newString[pos]

    ciao

  4. #4
    Reale_Augello
    Guest

    Potresti provare...

    ... così:

    char vocali[]="aeiouAEIOU";
    char tuastr[20];
    char output[20];

    for (i=0; i<strlen(tuastr); i++)
    {
    for (j=0; j<strlen(vocali); j++)
    {
    if (vocali[j]==tuastr[i]) output[i]=tuastr[i];
    }
    }
    output[i+1]='\0';

    Magari ti formatta anche il disco fisso, non so...

  5. #5
    ...... output[i]=tuastr[i];

    facendo così però alla fine lasci dei buchi in output che non penso fosse quello che Wallo voleva fare.

    ciao

  6. #6
    char *vocali="aeiouAEIOU";
    char stringa[20], output[20], *str1 , *str2, *str3;

    str1 = stringa[0];
    str2 = vocali[0];
    str3 = output[0];

    while(str1++)
    while(str2++)
    (*str1 == *str2) ? *(str3++) = *str1


    Mi sembra simpatico, ma chissa se funziona?

    Fatemi sapere che sono troppo stanco per provare a provarlo dopo 15 ore di lavoro!


    Ciao e a presto
    Shamar

  7. #7
    No, non funziona, ma se provate a riscriverlo con 2 for secondo me può funzionare!


    Ciao e a presto
    Shamar

  8. #8
    char *vocali="aeiouAEIOU";
    char input[20], output[20], *str1 , *str2, *str3;

    for(str1=input[0], str1<=stringa[20], str1++)
    for(str2=vocali[0], str2<=vocali[20], str2++)
    {
    (*str2==*str1) ? str3++;
    (*str2==*str1) ? *str3=*str2;
    }


    Mo vado a casa!!!!


    Shamar

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