|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2007
Messaggi: 267
|
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: 267
|
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 01:22. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: May 2007
Messaggi: 267
|
grazie tante, ottimo lavoro
ora ho capito dove sbagliavo |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:11.



















