|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: May 2007
Messaggi: 266
|
esercizio d'esame -- help
ciao ragazzi, ho fatto un esame di informatica solo che non sono riuscito a svolgere tale esercizio:
-- si scriva una funzione in linguaggio C in modo che, data una stringa come HAL, la trasformi in IBM, ossia sostituisca a ciascuna lettera della stringa data la sua successiva -- confido in voi ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2003
Messaggi: 3852
|
Sono un po' arrugginito di C, pero' mi sembra che basti sommare uno alla rappresentazione numerica dei caratteri..
![]()
__________________
Cerco fotocamera con buono zoom!! CLICCA! ° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) ° |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: May 2007
Messaggi: 266
|
ho provato a fare un abbozzo ma non funziona
se riuscite, correggetemi dove sbaglio Codice:
#include <stdio.h> char aggiungi(char *s) { int i; for(i=0; i<strlen(s); i++){ s[i]=s[i]+1;} return s; } void main() { char v[]="ciaol"; char pal; printf("%s", v); printf("programma per cambiare una stringa data\n\n"); pal=aggiungi(v); printf("risultato %s", pal); } |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2005
Città: Bari
Messaggi: 349
|
Codice:
#include <stdio.h> #include <string.h> void aggiungi(char *s) { int i; for(i=0; i<strlen(s); i++) { switch(s[i]) { case 'z':{s[i]='a';}break; case 'Z':{s[i]='A';}break; default:{s[i]=s[i]+1;}break; } } } void main() { char v[]="zZabcdef"; printf("%s", v); printf("\nprogramma per cambiare una stringa data\n\n"); aggiungi(v); printf("risultato %s\n", v); } infatti basta un'altra printf e il prog. funziona. non sono sicuro della riga char v[]="abcde"; anche se non mi dà errori il compilatore... forse è una mia "lacuna" del C, ma non ho mai trovato una dichiarazione simile...avrei fatto il vettore statico oppure una malloc per quello dinamico.. ah, ovviamente la logica del programma è esatta....operi sul codice ascii aggiungendo 1.... puoi solo inserire una sottigliezza in quanto se hai una 'Z' o una 'z' fare il +1 non restituisce la 'A' o la 'a'....prova a vedere cosa succede commentando i primi due case dello switch!!! Vito
__________________
Si può vincere una guerra in due...o forse anche da solo. Si può estrarre il cuore anche al più nero assassino, ma è più difficile cambiare un'idea! Ultima modifica di mapomapo : 11-07-2007 alle 00:22. |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: May 2007
Messaggi: 266
|
grazie tante, ottimo lavoro
ora ho capito dove sbagliavo |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:02.