Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    ordnassel
    Guest

    sostituzione in stringa

    senza usare la classe string.h ma una banalissima funzione....devo sostituire ad un array di caratteri char s[], (Es.amore), ad una lettera uno spazio ed un simbolo (Es.' @').Nel caso voglia sostituire la m.
    amore --> mi deve diventare --> a @ore
    Qualcuno mi illumina che quando lo faccio spostare sto array di caratteri mi mangio un valore nella stringa

  2. #2
    Dovresti spostare i rimanenti caratteri di 1

  3. #3
    e devi anche allocare più memoria visto che sostituisci un carattere con due.

    ciao
    ---------------------------------
    Luigi Fumero
    luigi@luigifumero.com
    www.luigifumero.com
    ---------------------------------

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    char[] replace(char* str, char find, char* subs) {
    int i, l = 0;
    while (str[l] != '\0')
    l++;
    char[l+1] string;
    for (i=0; i<l+1; i++) {
    if (str[i] == find) {
    string[i] = subs[0];
    string[++i] = subs[1];
    } else {
    string[i] = str[i];
    }
    }
    return string;
    }
    prova a compilarlo :sexpulp:

  5. #5
    La tua soluzione è un pò pericolosa, ritorni string che e' un array non allocato da te e quindi muore con la fine della funzione e non e' detto che la memoria a cui il tuo puntatore che ritorni abbia poi ancora all'interno la stringa che hai creato.

    Tra l'altro non compilerà proprio eprche' non puoi creare array usando come dimensione una variabile.(non puoi fare char[l+1] string)

    Forse in java puoi fare tutte ste cose, ma in c/c++ non andrà.

    In più la tua soluzione da per scontato che solo un carattere venga sostituito, se deve sostituire tutte le M in una parola devi prima vedere quante ce ne sono.

    ciao
    ---------------------------------
    Luigi Fumero
    luigi@luigifumero.com
    www.luigifumero.com
    ---------------------------------

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 1999
    Messaggi
    88
    Come ha detto lugifumero,
    non si può usare una variabile per dichiarare un array come hai fatto.
    In c++ devi usare il new, invece in c devi usare una malloc o simile.

    Ciao
    Paolomat
    VB - Java - C/C++ - VC - CORBA -JDBC

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.