Sostituzione caratteri in una parola/frase

Stato
Discussione chiusa ad ulteriori risposte.

kr1pn0$

Utente Silver
14 Ottobre 2008
69
5
0
70
Dato in input una parola o una frase modificarne le lettere (tipo l33t),esempio:
Codice:
eleonora = 3l30n0r@

il mio,in C:
Codice:
/*
 *         create by kripnos(c)
 *         [email protected] 
 *         NOTE:
 *         al più presto gli faro una GUI ( Graphical User Interfaces ) 
 *
 */

#include <stdio.h>

char par[10];               /* creo i contenitori dove sistemare la  */
int uscita;                 /* password da trasformare! par, uscita  */                

int main(){
printf("##########################\n#    BY  KRIPNOS (c)     #\n##########################\n");
printf("creatore di password\n salvatore >> $4lV4T0r3\nESCI per uscire\nUsa _ per spaziare le parole ESEMPIO:\nkripnos_usa_sempre_ubuntu\n\n");
for(;;){
printf("Digita la pass. da rinforzare: ");
scanf("%s",&par);
switch(par[0]){

case '1':
par[0]= 'O';
break;

case 'a':
par[0]= '@';
break;

case 'e':
par[0]= '3';
break;

case 's':
par[0]= '$';
break;

case 'i':
par[0]= '1';
break;

case 'o':
par[0]= '0';
break;

case 'n':
par[0]= 'N';
break;

// tasto uscita
case 'E':
uscita = 2;
break;

case 't':
par[0]= 'T';
break;

case 'f':
par[0]= 'F';
break;

case 'h':
par[0]= 'H';
break;

case 'P':
par[0]= 'p';
break;

default:
break;
}
// fine prima lettera

switch(par[1]){

case 'a':
par[1]= '4';
break;

case 'e':
par[1]= '3';
break;

case 's':
par[1]= '$';
break;

case 'i':
par[1]= '1';
break;

case 'A':
par[1]= 'a'
break;

case 'o':
par[1]= '0';
break;
// tasto uscita
// modulo di riconoscimento di uscita
if(uscita>1){
case 'S':
uscita = uscita+2;
break;
}
case 'j':
par[0]= 'J';
break;

case 'M':
par[0]= 'm';
break;

default:
break;
}
// fine seconda lettera

switch(par[2]){

case 'a':
par[2]= '4';
break;

case 'e':
par[2]= '3';
break;

case 's':
par[2]= '$';
break;

case 'i':
par[2]= '1';
break;

case 'o':
par[2]= '0';
break;

if(uscita>3){
case 'C':
uscita = uscita+2;
break;
}

default:
break;
}
// fine terza lettera

switch(par[3]){

case 'a':
par[3]= '4';
break;

case 'e':
par[3]= '3';
break;

case 's':
par[3]= '$';
break;

case 'i':
par[3]= '1';
break;

case 'o':
par[3]= '0';
break;

if(uscita>5){
case 'I':
uscita = uscita+2;
break;
}

default:
break;
}
// fine quarta lettera

switch(par[4]){

case 'a':
par[4]= '4';
break;

case 'e':
par[4]= '3';
break;

case 's':
par[4]= '$';
break;

case 'i':
par[4]= '1';
break;

case 'o':
par[4]= '0';
break;

default:
break;
}
// fine 5 lettera

switch(par[5]){

case 'a':
par[5]= '4';
break;

case 'e':
par[5]= '3';
break;

case 's':
par[5]= '$';
break;

case 'i':
par[5]= '1';
break;

case 'o':
par[5]= '0';
break;

default:
break;
}
// fine, lettera 6

switch(par[6]){

case 'a':
par[6]= '4';
break;

case 'e':
par[6]= '3';
break;

case 's':
par[6]= '$';
break;

case 'i':
par[6]= '1';
break;

case 'o':
par[6]= '0';
break;

default:
break;
}

// fine lettera 7

switch(par[7]){

case 'a':
par[7]= '4';
break;

case 'e':
par[7]= '3';
break;

case 's':
par[7]= '$';
break;

case 'i':
par[7]= '1';
break;

case 'o':
par[7]= '0';
break;

default:
break;
}
// fine 8

switch(par[8]){

case 'a':
par[8]= '4';
break;

case 'e':
par[8]= '3';
break;

case 's':
par[8]= '$';
break;

case 'i':
par[8]= '1';
break;

case 'o':
par[8]= '0';
break;

default:
break;
}
// fine 9
switch(par[9]){

case 'a':
par[9]= '4';
break;

case 'e':
par[9]= '3';
break;

case 's':
par[9]= '$';
break;

case 'i':
par[9]= '1';
break;

case 'o':
par[9]= '0';
break;

default:
break;
}
if (uscita == 8){
return 0;
}
printf("la tua password e': %s \n", par);
}
}
 
RE: esercizio semplice semplice

niente titoli stupidi...nel titolo devi descrivere brevemente l'esercizio...e non dilunghiamoci in cazzate,se no come l'ho aperta mo la chiudo sta sezione....edito io questa volta...
 
RE: esercizio semplice semplice

R4z0r_Cr4$H ha detto:
niente titoli stupidi...nel titolo devi descrivere brevemente l'esercizio...e non dilunghiamoci in cazzate,se no come l'ho aperta mo la chiudo sta sezione....edito io questa volta...

si scusami:hail::hail:
 
In PHP (purtroppo usa una funzione builtin, ma l'ho appena fatto di fretta, avevo voglia di scrivere qualcosa):
Codice:
<?php
function Change($word)
{
  $leet=array(
    's'=>'5',
    'e'=>'3',
    'a'=>'4',
    'i'=>'1',
    'o'=>'0',
  );
  foreach ($leet as $let=>$sost) {
    $word=str_replace($let, $sost, $word);
  }
  return $word;
}
$word=htmlentities($_REQUEST['word']);
echo $word.' => '.Change($word);
?>
 
Possibile soluzione in Python:
Codice:
from sys import argv
from string import maketrans

table = maketrans('aeiostAEIOST','4310$74310$7')
print argv[1].translate(table)
 
sydarex ha detto:
Possibile soluzione in Python:
Codice:
from sys import argv
from string import maketrans

table = maketrans('aeiostAEIOST','4310$74310$7')
print argv[1].translate(table)

si scusami ma non sai trovare metodi alternativi
lo sapevo anche io un metodo per risparmiarmi 253 righe di codice ma essendo che in questa sezione bisogna essere creativi.........
comunque non è una gara a chi scrive meno ma meglio
c'e gente che di python non sa neanche il nome...
quindi cerca di scrivere codice semplice ( x cose semplici )
 
kripnos ha detto:
sydarex ha detto:
Possibile soluzione in Python:
Codice:
from sys import argv
from string import maketrans

table = maketrans('aeiostAEIOST','4310$74310$7')
print argv[1].translate(table)

si scusami ma non sai trovare metodi alternativi
lo sapevo anche io un metodo per risparmiarmi 253 righe di codice ma essendo che in questa sezione bisogna essere creativi.........
comunque non è una gara a chi scrive meno ma meglio
c'e gente che di python non sa neanche il nome...
quindi cerca di scrivere codice semplice ( x cose semplici )

ok vuoi una forma estesa e semplice, eccola:

Codice:
from string import punctuation,digits,whitespace,lower

a=raw_input("inserisci una stringa ")
diz={"a" : "4", #eccettera, nn ho voglia di copiarmi l'intero alfabeto lett con le corrispondenze
        }

s=""
for i in a:
    if (i in punctuation) or (i in digits) or (i in whitespace):
        print "A wrong char was found, it will be removed"
        continue
    else:
        s+=diz[lower(i)]

print s

ora però nn venirmi a chiedere anche di riscrivermi la funzione lower e le stringhe digits etc, ricorda che la forza del python è la semplicità per l'uso delle librerie
 
kripnos ha detto:
si scusami ma non sai trovare metodi alternativi
lo sapevo anche io un metodo per risparmiarmi 253 righe di codice ma essendo che in questa sezione bisogna essere creativi.........
comunque non è una gara a chi scrive meno ma meglio
c'e gente che di python non sa neanche il nome...
quindi cerca di scrivere codice semplice ( x cose semplici )
Io sono un programmatore.
Scrivo il codice più pulito, snello, semplice ed efficente che riesco a trovare.

Devo fare uno switch separato per ogni lettera? E' un "metodo alternativo"? Bah.
 
kripnos ha detto:
sydarex ha detto:
Possibile soluzione in Python:
Codice:
from sys import argv
from string import maketrans

table = maketrans('aeiostAEIOST','4310$74310$7')
print argv[1].translate(table)

si scusami ma non sai trovare metodi alternativi
lo sapevo anche io un metodo per risparmiarmi 253 righe di codice ma essendo che in questa sezione bisogna essere creativi.........
comunque non è una gara a chi scrive meno ma meglio
c'e gente che di python non sa neanche il nome...
quindi cerca di scrivere codice semplice ( x cose semplici )

E' una soluzione, conforme alla filosofia del linguaggio e sopratutto utile comunque a chi viene qui a leggere, non ha senso criticare.
E secondo te scrivere meglio è inversamente proporzionale a scrivere poco? Non ci siamo....
 
ma no!!!!!!!!!
[ot]
non voglio giudicare nessuno ( sydalex sei bravissimo )
ma non voglio neanche una forma estesa
era che se scrivi codice cosi complicato e ristretto, almeno scrivi commenti cosi noi umani [he non sapiamo il python ] possiamo leggere..........
scusate
[/ot]

sydarex ha detto:
Possibile soluzione in Python:
Codice:
from sys import argv
from string import maketrans

table = maketrans('aeiostAEIOST','4310$74310$7')
print argv[1].translate(table)

ti chiedo scusa è vero ma non ti volevo ne giudicare ne tanto meno offendere lo splendido programmatore che sei......
SCUSA
P.S: perche mi fa errore??
Codice:
kripnos@kripnos-laptop:~/py$ python python.py
Traceback (most recent call last):
  File "python.py", line 5, in <module>
    print argv[1].translate(table)
IndexError: list index out of range
kripnos@kripnos-laptop:~/py$
 
kripnos ha detto:
ma no!!!!!!!!!
[ot]
non voglio giudicare nessuno ( sydalex sei bravissimo )
ma non voglio neanche una forma estesa
era che se scrivi codice cosi complicato e ristretto, almeno scrivi commenti cosi noi umani [he non sapiamo il python ] possiamo leggere..........
scusate
[/ot]

sydarex ha detto:
Possibile soluzione in Python:
Codice:
from sys import argv
from string import maketrans

table = maketrans('aeiostAEIOST','4310$74310$7')
print argv[1].translate(table)

ti chiedo scusa è vero ma non ti volevo ne giudicare ne tanto meno offendere lo splendido programmatore che sei......
SCUSA
P.S: perche mi fa errore??
Codice:
kripnos@kripnos-laptop:~/py$ python python.py
Traceback (most recent call last):
  File "python.py", line 5, in <module>
    print argv[1].translate(table)
IndexError: list index out of range
kripnos@kripnos-laptop:~/py$

Questo è un altro discorso. Per capire quel codice basta leggere la documentazione sulle funzioni maketrans e translate. =)
Ti da errore perché si aspetta la stringa in input come argomento dello script.
 
sydarex ha detto:
kripnos ha detto:
ma no!!!!!!!!!
[ot]
non voglio giudicare nessuno ( sydalex sei bravissimo )
ma non voglio neanche una forma estesa
era che se scrivi codice cosi complicato e ristretto, almeno scrivi commenti cosi noi umani [he non sapiamo il python ] possiamo leggere..........
scusate
[/ot]

sydarex ha detto:
Possibile soluzione in Python:
Codice:
from sys import argv
from string import maketrans

table = maketrans('aeiostAEIOST','4310$74310$7')
print argv[1].translate(table)

ti chiedo scusa è vero ma non ti volevo ne giudicare ne tanto meno offendere lo splendido programmatore che sei......
SCUSA
P.S: perche mi fa errore??
Codice:
kripnos@kripnos-laptop:~/py$ python python.py
Traceback (most recent call last):
  File "python.py", line 5, in <module>
    print argv[1].translate(table)
IndexError: list index out of range
kripnos@kripnos-laptop:~/py$

Questo è un altro discorso. Per capire quel codice basta leggere la documentazione sulle funzioni maketrans e translate. =)
Ti da errore perché si aspetta la stringa in input come argomento dello script.



GRAZIE

modificato il tuo codice....
adesso è più semplice e la schiede a me la parola......
Codice:
from sys import argv
from string import maketrans
par = raw_input("Digita la parola: ")
table = maketrans('aeiostAEIOST','4310$74310$7')
print par.translate(table)
 
Il mio è più corto di quello di syndarex:solo 354 righe...

Codice:
#include <iostream>
using namespace std;

int main()
{
    char x[19];
    cout << "Inserisci la parola da sostituire(max 20 lettere)\n";
    cin >> x;
    switch(x[0]){
                 case 'o':
                      x[0]='0';
                      break;
                 case 'i':
                      x[0]='0';
                      break;
                 case 'e':
                      x[0]='3';
                      break;
                 case 'a':
                      x[0]='4';
                      break;
                 case 't':
                      x[0]='7';
                 default: break;
                 }
    switch (x[1]){
                 case 'o':
                      x[1]='0';
                      break;
                 case 'i':
                      x[1]='0';
                      break;
                 case 'e':
                      x[1]='3';
                      break;
                 case 'a':
                      x[1]='4';
                      break;
                 case 't':
                      x[1]='7';
                 default: break;
                 }
    switch (x[2]) {
                 case 'o':
                      x[2]='0';
                      break;
                 case 'i':
                      x[2]='0';
                      break;
                 case 'e':
                      x[2]='3';
                      break;
                 case 'a':
                      x[2]='4';
                      break;
                 case 't':
                      x[2]='7';
                 default: break;
                 }
     switch (x[3]) {
                 case 'o':
                      x[3]='0';
                      break;
                 case 'i':
                      x[3]='0';
                      break;
                 case 'e':
                      x[3]='3';
                      break;
                 case 'a':
                      x[3]='4';
                      break;
                 case 't':
                      x[3]='7';
                 default: break;
                 }
    switch (x[4]) {
                 case 'o':
                      x[4]='0';
                      break;
                 case 'i':
                      x[4]='0';
                      break;
                 case 'e':
                      x[4]='3';
                      break;
                 case 'a':
                      x[4]='4';
                      break;
                 case 't':
                      x[4]='7';
                 default: break;
                 }
      switch (x[5]) {
                 case 'o':
                      x[5]='0';
                      break;
                 case 'i':
                      x[5]='0';
                      break;
                 case 'e':
                      x[5]='3';
                      break;
                 case 'a':
                      x[5]='4';
                      break;
                 case 't':
                      x[5]='7';
                 default: break;
                 }
    switch (x[6]) {
                 case 'o':
                      x[6]='0';
                      break;
                 case 'i':
                      x[6]='0';
                      break;
                 case 'e':
                      x[6]='3';
                      break;
                 case 'a':
                      x[6]='4';
                      break;
                 case 't':
                      x[6]='7';
                 default: break;
                 }
    switch (x[7]) {
                 case 'o':
                      x[7]='0';
                      break;
                 case 'i':
                      x[7]='0';
                      break;
                 case 'e':
                      x[7]='3';
                      break;
                 case 'a':
                      x[7]='4';
                      break;
                 case 't':
                      x[7]='7';
                 default: break;
                 }
    switch (x[8]) {
                 case 'o':
                      x[8]='0';
                      break;
                 case 'i':
                      x[8]='0';
                      break;
                 case 'e':
                      x[8]='3';
                      break;
                 case 'a':
                      x[8]='4';
                      break;
                 case 't':
                      x[8]='7';
                 default: break;
                 }
    switch (x[9]) {
                 case 'o':
                      x[9]='0';
                      break;
                 case 'i':
                      x[9]='0';
                      break;
                 case 'e':
                      x[9]='3';
                      break;
                 case 'a':
                      x[9]='4';
                      break;
                 case 't':
                      x[9]='7';
                 default: break;
                 }
    switch (x[10]) {
                 case 'o':
                      x[10]='0';
                      break;
                 case 'i':
                      x[10]='0';
                      break;
                 case 'e':
                      x[10]='3';
                      break;
                 case 'a':
                      x[10]='4';
                      break;
                 case 't':
                      x[10]='7';
                 default: break;
                 }
    switch (x[11]) {
                 case 'o':
                      x[11]='0';
                      break;
                 case 'i':
                      x[11]='0';
                      break;
                 case 'e':
                      x[11]='3';
                      break;
                 case 'a':
                      x[11]='4';
                      break;
                 case 't':
                      x[11]='7';
                 default: break;
                 }
    switch (x[12]) {
                 case 'o':
                      x[12]='0';
                      break;
                 case 'i':
                      x[12]='0';
                      break;
                 case 'e':
                      x[12]='3';
                      break;
                 case 'a':
                      x[12]='4';
                      break;
                 case 't':
                      x[12]='7';
                 default: break;
                 }
    switch (x[13]) {
                 case 'o':
                      x[13]='0';
                      break;
                 case 'i':
                      x[13]='0';
                      break;
                 case 'e':
                      x[13]='3';
                      break;
                 case 'a':
                      x[13]='4';
                      break;
                 case 't':
                      x[13]='7';
                 default: break;
                 }
    switch (x[14]) {
                 case 'o':
                      x[14]='0';
                      break;
                 case 'i':
                      x[14]='0';
                      break;
                 case 'e':
                      x[14]='3';
                      break;
                 case 'a':
                      x[14]='4';
                      break;
                 case 't':
                      x[14]='7';
                 default: break;
                 }
    switch (x[15]) {
                 case 'o':
                      x[15]='0';
                      break;
                 case 'i':
                      x[15]='0';
                      break;
                 case 'e':
                      x[15]='3';
                      break;
                 case 'a':
                      x[15]='4';
                      break;
                 case 't':
                      x[15]='7';
                 default: break;
                 }
    switch (x[16]) {
                 case 'o':
                      x[16]='0';
                      break;
                 case 'i':
                      x[16]='0';
                      break;
                 case 'e':
                      x[16]='3';
                      break;
                 case 'a':
                      x[16]='4';
                      break;
                 case 't':
                      x[16]='7';
                 default: break;
                 }
    switch (x[17]) {
                 case 'o':
                      x[17]='0';
                      break;
                 case 'i':
                      x[17]='0';
                      break;
                 case 'e':
                      x[17]='3';
                      break;
                 case 'a':
                      x[17]='4';
                      break;
                 case 't':
                      x[17]='7';
                 default: break;
                 }
    switch (x[18]) {
                 case 'o':
                      x[18]='0';
                      break;
                 case 'i':
                      x[18]='0';
                      break;
                 case 'e':
                      x[18]='3';
                      break;
                 case 'a':
                      x[18]='4';
                      break;
                 case 't':
                      x[18]='7';
                 default: break;
                 }
    switch (x[19]) {
                 case 'o':
                      x[19]='0';
                      break;
                 case 'i':
                      x[19]='0';
                      break;
                 case 'e':
                      x[19]='3';
                      break;
                 case 'a':
                      x[19]='4';
                      break;
                 case 't':
                      x[19]='7';
                 default: break;
                 }
  cout << "la parola è " << x << '\n';
}

edit:scusate, mi ero dimenticato il tag [/code]
edit2:dimenticavo:ho preso spunto dal codice in c di kripnos
edit3:dimenticato di dire che è in c++, anche se la maggior parte di voi l'avranno capito...
edit4:ma esiste un premio per il maggior numero di edit?
edit5:se esistesse, questo messaggio sarebbe in corsa?
edit6:mi ero dimenticato la virgola nell' edit5
 
lepa ha detto:
Il mio è più corto di quello di syndarex:solo 354 righe...

Codice:
#include <iostream>
using namespace std;

int main()
{
    char x[19];
    cout << "Inserisci la parola da sostituire(max 20 lettere)\n";
    cin >> x;
    switch(x[0]){
                 case 'o':
                      x[0]='0';
                      break;
                 case 'i':
                      x[0]='0';
                      break;
                 case 'e':
                      x[0]='3';
                      break;
                 case 'a':
                      x[0]='4';
                      break;
                 case 't':
                      x[0]='7';
                 default: break;
                 }
    switch (x[1]){
                 case 'o':
                      x[1]='0';
                      break;
                 case 'i':
                      x[1]='0';
                      break;
                 case 'e':
                      x[1]='3';
                      break;
                 case 'a':
                      x[1]='4';
                      break;
                 case 't':
                      x[1]='7';
                 default: break;
                 }
    switch (x[2]) {
                 case 'o':
                      x[2]='0';
                      break;
                 case 'i':
                      x[2]='0';
                      break;
                 case 'e':
                      x[2]='3';
                      break;
                 case 'a':
                      x[2]='4';
                      break;
                 case 't':
                      x[2]='7';
                 default: break;
                 }
     switch (x[3]) {
                 case 'o':
                      x[3]='0';
                      break;
                 case 'i':
                      x[3]='0';
                      break;
                 case 'e':
                      x[3]='3';
                      break;
                 case 'a':
                      x[3]='4';
                      break;
                 case 't':
                      x[3]='7';
                 default: break;
                 }
    switch (x[4]) {
                 case 'o':
                      x[4]='0';
                      break;
                 case 'i':
                      x[4]='0';
                      break;
                 case 'e':
                      x[4]='3';
                      break;
                 case 'a':
                      x[4]='4';
                      break;
                 case 't':
                      x[4]='7';
                 default: break;
                 }
      switch (x[5]) {
                 case 'o':
                      x[5]='0';
                      break;
                 case 'i':
                      x[5]='0';
                      break;
                 case 'e':
                      x[5]='3';
                      break;
                 case 'a':
                      x[5]='4';
                      break;
                 case 't':
                      x[5]='7';
                 default: break;
                 }
    switch (x[6]) {
                 case 'o':
                      x[6]='0';
                      break;
                 case 'i':
                      x[6]='0';
                      break;
                 case 'e':
                      x[6]='3';
                      break;
                 case 'a':
                      x[6]='4';
                      break;
                 case 't':
                      x[6]='7';
                 default: break;
                 }
    switch (x[7]) {
                 case 'o':
                      x[7]='0';
                      break;
                 case 'i':
                      x[7]='0';
                      break;
                 case 'e':
                      x[7]='3';
                      break;
                 case 'a':
                      x[7]='4';
                      break;
                 case 't':
                      x[7]='7';
                 default: break;
                 }
    switch (x[8]) {
                 case 'o':
                      x[8]='0';
                      break;
                 case 'i':
                      x[8]='0';
                      break;
                 case 'e':
                      x[8]='3';
                      break;
                 case 'a':
                      x[8]='4';
                      break;
                 case 't':
                      x[8]='7';
                 default: break;
                 }
    switch (x[9]) {
                 case 'o':
                      x[9]='0';
                      break;
                 case 'i':
                      x[9]='0';
                      break;
                 case 'e':
                      x[9]='3';
                      break;
                 case 'a':
                      x[9]='4';
                      break;
                 case 't':
                      x[9]='7';
                 default: break;
                 }
    switch (x[10]) {
                 case 'o':
                      x[10]='0';
                      break;
                 case 'i':
                      x[10]='0';
                      break;
                 case 'e':
                      x[10]='3';
                      break;
                 case 'a':
                      x[10]='4';
                      break;
                 case 't':
                      x[10]='7';
                 default: break;
                 }
    switch (x[11]) {
                 case 'o':
                      x[11]='0';
                      break;
                 case 'i':
                      x[11]='0';
                      break;
                 case 'e':
                      x[11]='3';
                      break;
                 case 'a':
                      x[11]='4';
                      break;
                 case 't':
                      x[11]='7';
                 default: break;
                 }
    switch (x[12]) {
                 case 'o':
                      x[12]='0';
                      break;
                 case 'i':
                      x[12]='0';
                      break;
                 case 'e':
                      x[12]='3';
                      break;
                 case 'a':
                      x[12]='4';
                      break;
                 case 't':
                      x[12]='7';
                 default: break;
                 }
    switch (x[13]) {
                 case 'o':
                      x[13]='0';
                      break;
                 case 'i':
                      x[13]='0';
                      break;
                 case 'e':
                      x[13]='3';
                      break;
                 case 'a':
                      x[13]='4';
                      break;
                 case 't':
                      x[13]='7';
                 default: break;
                 }
    switch (x[14]) {
                 case 'o':
                      x[14]='0';
                      break;
                 case 'i':
                      x[14]='0';
                      break;
                 case 'e':
                      x[14]='3';
                      break;
                 case 'a':
                      x[14]='4';
                      break;
                 case 't':
                      x[14]='7';
                 default: break;
                 }
    switch (x[15]) {
                 case 'o':
                      x[15]='0';
                      break;
                 case 'i':
                      x[15]='0';
                      break;
                 case 'e':
                      x[15]='3';
                      break;
                 case 'a':
                      x[15]='4';
                      break;
                 case 't':
                      x[15]='7';
                 default: break;
                 }
    switch (x[16]) {
                 case 'o':
                      x[16]='0';
                      break;
                 case 'i':
                      x[16]='0';
                      break;
                 case 'e':
                      x[16]='3';
                      break;
                 case 'a':
                      x[16]='4';
                      break;
                 case 't':
                      x[16]='7';
                 default: break;
                 }
    switch (x[17]) {
                 case 'o':
                      x[17]='0';
                      break;
                 case 'i':
                      x[17]='0';
                      break;
                 case 'e':
                      x[17]='3';
                      break;
                 case 'a':
                      x[17]='4';
                      break;
                 case 't':
                      x[17]='7';
                 default: break;
                 }
    switch (x[18]) {
                 case 'o':
                      x[18]='0';
                      break;
                 case 'i':
                      x[18]='0';
                      break;
                 case 'e':
                      x[18]='3';
                      break;
                 case 'a':
                      x[18]='4';
                      break;
                 case 't':
                      x[18]='7';
                 default: break;
                 }
    switch (x[19]) {
                 case 'o':
                      x[19]='0';
                      break;
                 case 'i':
                      x[19]='0';
                      break;
                 case 'e':
                      x[19]='3';
                      break;
                 case 'a':
                      x[19]='4';
                      break;
                 case 't':
                      x[19]='7';
                 default: break;
                 }
  cout << "la parola è " << x << '\n';
}

edit:scusate, mi ero dimenticato il tag [/code]

Questa è la cosa più orribile che io abbia mai visto xD
Bastava un for! E quel max 20 caratteri lo puoi sostituire con "non c'è un limite" studiandoti un po' di gestione dinamica della memoria ^^
 
no, è che sto studiacchiando il c++ e ogni tanto mi metto a fare questi programmini, solo che sono riuscito a capire ora gli array...
 
Ma gli array qui ci dicono poco, bastava usare la testa :asd:, prima di metterti a scrivere butta giù un bozzetto, uno schema o qualcosa in pseudocodice di quello che devi fare....
 
Allora l'ho rifatto, solo che però non mi da la stringa in l337, ma la stringa come l'ho scritta:qual è il problema (durante la compilazione non da errori, è ad eseguirlo che non mi modifica la stringa)....

Codice:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

int main()
{
    char x[80];
    int y;
    cout << "Inserisci Una Stringa\n";
    gets(x);
    for (y=0; y>=strlen(x)-1; y++) {
        switch (x[y]){
               case 'o':
                    x[y]='0';
                    break;
               case 'i':
                    x[y]='1';
                    break;
               case 'e':
                    x[y]='3';
                    break;
               case 'a':
                    x[y]='4';
                    break;
               case 't':
                    x[y]='7';
                    break;
               default: break;
               }
               }
    cout << "La Nuova Stringa e' " << x;
    
    return 0;
}
 
invece metterei un array con N elementi
esempio: [C]
digita una parola: ciao
ciao ha 4 lettere, le misuro con strlen e poi potrei fare
Codice:
for(n++;n<= strlen(par[100]);n=0){
     switch(par[n]){
             case 'a':
                  par[n]='4';
                  break;

ecc........
EDIT1: non l'ho testato
 
ma intendi dichiararla proprio con un array di n elementi?

edit: nulla nemmeno così....-.-
ho cambiato:
Codice:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

int main()
{
    int y;
    char x[y];
    cout << "Inserisci Una Stringa\n";
    gets(x);
    for (y=0; y>=strlen(x)-1; y++) {
        switch (x[y]){
               case 'o':
                    x[y]='0';
                    break;
               case 'i':
                    x[y]='1';
                    break;
               case 'e':
                    x[y]='3';
                    break;
               case 'a':
                    x[y]='4';
                    break;
               case 't':
                    x[y]='7';
                    break;
               default: break;
               }
               }
    cout << "La Nuova Stringa e' " << x;
    
    return 0;
}
 
no ecco:
Codice:
main( char parola[100] ){
     printf("Digita la parola:  ");      // 
     scanf("%s",&parola);            //   esempio inutile lo fatto solo per farti capire il ciclo for

     for(n++;n<= strlen(par[100]);n=0){ // n aumenta di 1 ad ogni ciclo, deve valere meno o uguale alla
     switch(par[n]){                             // lunghezza della parola , e vale 0
             case 'a':
                  par[n]='4';
                  break;
//e ripetere con b c ecc.....
}}}
ma come ripeto è sbagliato il codice ma era per farti capire come si può fare...

lepa ha detto:
ma intendi dichiararla proprio con un array di n elementi?

edit: nulla nemmeno così....-.-
ho cambiato:
Codice:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

int main()
{
    int y;
    char x[y];
    cout << "Inserisci Una Stringa\n";
    gets(x);
    for (y=0; y>=strlen(x)-1; y++) {
        switch (x[y]){
               case 'o':
                    x[y]='0';
                    break;
               case 'i':
                    x[y]='1';
                    break;
               case 'e':
                    x[y]='3';
                    break;
               case 'a':
                    x[y]='4';
                    break;
               case 't':
                    x[y]='7';
                    break;
               default: break;
               }
               }
    cout << "La Nuova Stringa e' " << x;
    
    return 0;
}

nulla perche y vale 0 se non inizializzata con un valore quindi dichiara y = che ne so a 100
 
kripnos ha detto:
lepa ha detto:
ma intendi dichiararla proprio con un array di n elementi?

edit: nulla nemmeno così....-.-
ho cambiato:
Codice:
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

int main()
{
    int y;
    char x[y];
    cout << "Inserisci Una Stringa\n";
    gets(x);
    for (y=0; y>=strlen(x)-1; y++) {
        switch (x[y]){
               case 'o':
                    x[y]='0';
                    break;
               case 'i':
                    x[y]='1';
                    break;
               case 'e':
                    x[y]='3';
                    break;
               case 'a':
                    x[y]='4';
                    break;
               case 't':
                    x[y]='7';
                    break;
               default: break;
               }
               }
    cout << "La Nuova Stringa e' " << x;
    
    return 0;
}

nulla perche y vale 0 se non inizializzata con un valore quindi dichiara y = che ne so a 100

si, ma dev-cpp me lo compila senza errori, e poi è inizializzata, no?

....
for (y=0; y>=strlen(x)-1; y++) {
.....

il libro che sto leggendo spiega così il ciclo for;
Codice:
for(inizializzazione; condizione; incremento/decremento)
 
si ma dopo
di char x[y]
quindi diventa tipo cosi:
Codice:
int y; // per adesso vale 0
char x[0];
for (y=0; y>=strlen(x)-1; y++) {
// ecc....
}
anche a me la compila senza errori ma guardi i warming
 
Stato
Discussione chiusa ad ulteriori risposte.