PDA

Visualizza la versione completa : Somma di stringhe


nicolson11
20-05-2006, 18:03
Buona sera!!
Mi servirebbe un aiuto....
Date 2stringhe di caratteri, devo effettuare la somma modulo 128 dei caratteri della prima e sommarli poi con quelli della seconda!
In output devo fornire la somma tra le due...


Come faccio??

grazie!

andbin
20-05-2006, 18:15
Originariamente inviato da nicolson11
Buona sera!!
Mi servirebbe un aiuto....
Date 2stringhe di caratteri, devo effettuare la somma modulo 128 dei caratteri della prima e sommarli poi con quelli della seconda!
In output devo fornire la somma tra le due...Se ho capito bene:

int calcola_somma_str (char *p)
{
int s = 0;

while (*p != '\0')
s += *p++;

return s & 0x7F;
}
Se invece non quello che intendevi, chiedo scusa. :ciauz:

nicolson11
20-05-2006, 18:30
Grazie, per la risposta!!..cmq probab mi sono spiegato male ed in maniera incompleta...
Tramite linux dovrei creare un programma che scrivendo nella bash:

./nomeprogr stringa1 stringa2

mi dia in output la somma delle due stringhe...questo tramite la trasformazione in ASCII suppongo, visto che mi stato richiesta la somma modulo 128 di ciascun carattere della prima con il corrispondente della seconda...

grazie

andbin
20-05-2006, 20:43
Originariamente inviato da nicolson11
Grazie, per la risposta!!..cmq probab mi sono spiegato male ed in maniera incompleta...
Tramite linux dovrei creare un programma che scrivendo nella bash:

./nomeprogr stringa1 stringa2

mi dia in output la somma delle due stringhe...questo tramite la trasformazione in ASCII suppongo, visto che mi stato richiesta la somma modulo 128 di ciascun carattere della prima con il corrispondente della seconda...

grazie Fammi un esempio di calcolo. Supponiamo che:
stringa1 = "ab" (caratteri con codice 97 98)
stringa2 = "123" (caratteri con codice 49 50 51)

Cosa devi ottenere??

nicolson11
21-05-2006, 09:09
Ti scrivo proprio quello che mi stato richiesto, lo ritengo poco chiaro e per quello penso di nn essermi espresso bene, cmq spero che con questo si capisca meglio.

TESTO
Si realizzi il programma C encode che accetta come parametri di ingresso due stringhe e produce in uscita la stringa che si ottiene eseguendo la somma modulo 128 di ciascun carattere della prima stringa con il corrispondente della seconda. Nel caso che la seconda stringa sia pi corta della prima, prima di effettuare la somma si proceda alla giustapposizione di un numero congruo di copie della seconda stringa. Pertanto, si tratta di realizzare in C il comando di shell
encode word key
dove word la stringa da codificare mentre key la chiave utilizzata per la codifica. Si implementi il comando in modo tale che non vengano accettate stringhe il cui effetto quello di produrre stringhe risultato contenenti caratteri non stampabili :nonono: .
Si ricordi a questo proposito che, nella definizione della codifica ASCII tali caratteri sono contenuti nell'intervallo 32..126. Si tenga presente, inoltre, che il carattere di valore zero (null character) impiegato come terminatore di stringa.

Siccome str1>str2 da quello che ho capito io, invertendo il tuo esempio
stringa2 = "ab" (caratteri con codice 97 98)
stringa1 = "123" (caratteri con codice 49 50 51)
penso sia da fare: 1+a,2+b,3 ed infine scrivere la stringa che da quel risultato,x in questo caso nn possibile xk 49+97>127

grazie 1000 :ciauz:

Loading