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

    problema stringhe C

    ciao a tutti... vi mostro prima il programma e poi vi dico i problemi:

    __________________________________________________ ________________________________
    /* Il programma prende in imput da tastiera un testo e lo comprime con sostituzioni come "nn", "xke"
    * invece di "non", "perche".. ecc */

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

    char * Replace(char *origin, char *old, char *new){
    char *ris = (char*)malloc(sizeof(char)*strlen(origin));
    char *tmp = (char*)malloc(sizeof(char)*strlen(origin));
    ris = strcpy(ris, origin);

    char *pos;
    while((pos = strstr(ris, old)) != NULL) {
    memset(tmp, 0, strlen(tmp));
    tmp = strncpy(tmp,ris, pos - ris);
    tmp = strcat(tmp, new);
    tmp = strcat(tmp, pos + strlen(old));
    ris = strcpy(ris, tmp);
    }


    ris = (char*)realloc(ris, sizeof(char)*strlen(ris));
    free(tmp);
    free(origin);

    return ris;
    }


    int main(int *argc, char ** argv)
    {
    printf("\nIl programma comincia qui. Per uscire premere ctrl + c\n \n");
    printf("Inserire il testo da convertire e premere invio:\n");
    do{
    scanf("%s", str);

    char *mystring = (char*)malloc(sizeof(char) * strlen(str));
    mystring = strcpy(mystring,str);
    char *ris = Replace(mystring, "ch", "k");
    ris = Replace(ris, "per", "x");
    ris = Replace(ris, "come", "cm");
    ris = Replace(ris, "questo", "qst");
    ris = Replace(ris, "niente", "nnt");
    ris = Replace(ris, "non", "nn");
    ris = Replace(ris, "oggi", "gg");
    ris = Replace(ris, "uno", "1");
    ris = Replace(ris, "sono", "sn");
    ris = Replace(ris, "tutto", "tt");
    ris = Replace(ris, "tutta", "tt");
    ris = Replace(ris, "cosa", "cs");
    ris = Replace(ris, "una", "1");
    ris = Replace(ris, "comunque", "cmq");
    ris = Replace(ris, "bene", "bn");
    ris = Replace(ris, "sei", "6");
    ris = Replace(ris, "destra", "dx");
    ris = Replace(ris, "sinistra", "sx");
    ris = Replace(ris, "messaggio", "msg");
    ris = Replace(ris, "numero", "num");
    ris = Replace(ris, "dopo", "dp");
    ris = Replace(ris, "rispondi", "risp");
    ris = Replace(ris, "risponde", "risp");

    printf("%s ",ris);

    }while(str != "\n");



    return 0;
    }

    __________________________________________________ ___________________________________

    --il programma converte un testo inserito da tastiera in "linguaggio compresso" .. ora devo prendere il testo, salvarlo su file e poi rileggerlo ed usarlo nel programma (lo sò, è abbastanza inutile visto che si può fare ammeno di salvarlo... ma sono abbastanza pignoli su questo ... <.<)
    comunque, il problema stà nel leggere il testo, la %s mi legge solamente una parola, anche nella versione di sopra ho dovuto usare un ciclo per stamparlo tutto...
    come posso fare a prendere in considerazione l'intero testo e non parola per parola?
    è quasi un mese che ci sbatto la testa.... help

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    omg farai la felicità dei bimbiminkia con quel programma

    comunque perché perdere un mese di tempo? Bastava fare una semplice ricerca per arrivare a fgets() (basta passare stdin come terzo argomento per leggere da tastiera).
    every day above ground is a good one

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Come da Regolamento, suggerisco di usare titoli più significativi in futuro e di formattare il codice sorgente usando l'apposito tag [CODE].
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4

    Re: Moderazione

    Originariamente inviato da alka
    Come da Regolamento, suggerisco di usare titoli più significativi in futuro e di formattare il codice sorgente usando l'apposito tag [CODE].
    ho dato solo un'occhiata veloce al regolamento, lo rileggerò meglio.
    scusate


    Originariamente inviato da YuYevon
    omg farai la felicità dei bimbiminkia con quel programma

    comunque perché perdere un mese di tempo? Bastava fare una semplice ricerca per arrivare a fgets() (basta passare stdin come terzo argomento per leggere da tastiera).
    giààààà!!! lo stdin
    grazie per la dritta!!!!!!

  5. #5

    stringa testo (saltare '\0')

    salve a tutti.. ho bisogno di un programma semplice... che però non mi riescce!!
    mi fate un esempio di un programma che prende un testo in imput (hello world per esempio) e lo stampa ?

    il mio problema è la scanf, la %_s prende in imput solo una parola invece di tutto il testo... non riesco a venirne a capo!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da YuYevon
    Bastava fare una semplice ricerca per arrivare a fgets() (basta passare stdin come terzo argomento per leggere da tastiera).
    every day above ground is a good one

  7. #7
    si.. e ci ho provato ma sicuramente stò sbagliando qualcosa...
    appunto lo richiedo, se avessi l'esempio di un programma anche semplice. che prende in imput un testo con piu di una parola e poi lo stampa capirei meglio...
    (mi hanno fatto una lezione veloce su questo all'uni.. e lì per lì pensavo di averlo capito. ma senza un esempio prattico mi trovo un pò nel mare aperto... cmq, scusate l'ignoranza ... )

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da Iulian
    appunto lo richiedo, se avessi l'esempio di un programma anche semplice. che prende in imput un testo con piu di una parola e poi lo stampa capirei meglio...
    Questo problema è diverso da quello posto all'inizio, inoltre qui non si scrivono programmi su richiesta per chiarire dei concetti, o almeno non per queste condizioni; piuttosto, documentati sugli elementi fondamentali del linguaggio, fai una ricerca per chiarire lo scopo e l'utilizzo delle sue funzioni di base, stendi un codice per testare quanto hai appreso e, in caso di problemi o errori, posta il codice in una discussione aperta seguendo le indicazioni del Regolamento.

    Il forum non sostituisce alla necessità di documentarsi adeguatamente.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.