Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-03-2007, 17:49   #1
nicod83
Member
 
L'Avatar di nicod83
 
Iscritto dal: Jun 2005
Messaggi: 123
[C] esercizio facile...

Si definisca una funzione di char * che accetti come parametro una stringa e restituisca una diversa stringa con tutti i caratteri alfabetici passati al caso maiuscolo e gli altri caratteri inalterati. La stringa originale non deve essere cambiata.

'A' in ascii è 65
'a' invece 97
quindi 97-65=32
prendo la stringa e sottraggo -32 su ogni carattere, giusto??
nicod83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 17:58   #2
Tadde
Senior Member
 
Iscritto dal: Oct 2001
Città: Firenze
Messaggi: 585
Quote:
Originariamente inviato da nicod83 Guarda i messaggi
Si definisca una funzione di char * che accetti come parametro una stringa e restituisca una diversa stringa con tutti i caratteri alfabetici passati al caso maiuscolo e gli altri caratteri inalterati. La stringa originale non deve essere cambiata.

'A' in ascii è 65
'a' invece 97
quindi 97-65=32
prendo la stringa e sottraggo -32 su ogni carattere, giusto??
E se il carattere è già una lettera maiuscola cosa succede col tuo metodo?
Tadde è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 18:09   #3
Fede_Reghe
Member
 
L'Avatar di Fede_Reghe
 
Iscritto dal: Dec 2006
Città: Firenze
Messaggi: 118
ricordati di trasformarle in int prima di sottrarre!
__________________
Federica
Fede_Reghe è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 18:12   #4
nicod83
Member
 
L'Avatar di nicod83
 
Iscritto dal: Jun 2005
Messaggi: 123
Quote:
Originariamente inviato da Fede_Reghe Guarda i messaggi
ricordati di trasformarle in int prima di sottrarre!
ah! ...help me
nicod83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 18:15   #5
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Fai un controllo.
Qui trovi la tabella ascii
http://www.asciitable.com/
Se è tra 97 e 122 (ovvero se è una minuscola) sottrai 32, altrimenti lasci il valore attuale.
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 18:16   #6
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da Fede_Reghe Guarda i messaggi
ricordati di trasformarle in int prima di sottrarre!
il C memorizza i char direttamente con il loro codice ASCII, quindi non dovresti avere problemi di conversione.
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 18:25   #7
Fede_Reghe
Member
 
L'Avatar di Fede_Reghe
 
Iscritto dal: Dec 2006
Città: Firenze
Messaggi: 118
Eventualmente se non te lo converte fai
Codice:
risultato[1] = (int) arr[1] - 32;
__________________
Federica
Fede_Reghe è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 19:11   #8
nicod83
Member
 
L'Avatar di nicod83
 
Iscritto dal: Jun 2005
Messaggi: 123
ho qualche problema....

void cambia (char* c) {
char *T;
....????

T[i]=(int) c-32;

printf("%s ", c);
}

int main() {
char* c= "ciao";
printf("%s \n",c);
cambia(c)


return 0;
}
nicod83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 19:39   #9
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da nicod83 Guarda i messaggi
ho qualche problema....

void cambia (char* c) {
char *T;
....????

T[i]=(int) c-32;

printf("%s ", c);
}

int main() {
char* c= "ciao";
printf("%s \n",c);
cambia(c)


return 0;
}
il vettore su cui devi lavorare è quello che passi in ingresso.
Quindi char T* è inutile.
poi fai un ciclo con cui controlli se la stringa è terminata (da 0).
Codice:
int i=0;
while(c[i]!='\0'){
   if(c[i]>=97&&c[i]<=92){
     c[i]=c[i]-32;
   }
   i++;
}
__________________

Ultima modifica di wisher : 18-03-2007 alle 19:40. Motivo: Non incrementavo i
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 20:37   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
mia versione:
Codice:
char *Capitalize(char *Input)
{
	char *Output;
	int i;

	Output = (char*)malloc(strlen(Input) + 1); /* occhio al leak */

	for (i = 0; Input[i]; i++)
	{
		if ((Input[i] >= 'a') && (Input[i] <= 'z'))
		{
			Output[i] = Input[i] + 'A' - 'a';
		}
		else
		{
			Output[i] = Input[i];
		}
	}
	return Output;
}

Ultima modifica di 71104 : 18-03-2007 alle 20:41.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 18-03-2007, 21:22   #11
nicod83
Member
 
L'Avatar di nicod83
 
Iscritto dal: Jun 2005
Messaggi: 123
mi dà un error (bus error)....


void cambia (char* c) {
int i=0;
while(c[i]!='\0'){
if(c[i]>=97 && c[i]<=122){
c[i]=c[i]-32;

}
i++;
}
printf("%s ", c);
}

int main() {
char* c= "ciao";
printf("%s \n",c);
cambia(c);

return 0;
}
nicod83 è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2007, 02:41   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da nicod83 Guarda i messaggi
mi dà un error (bus error)....
perché hai provato a modificare un'area di memoria che la maggioranza dei compilatori nella maggiornaza dei casi imposta a sola lettura, ovvero la stringa "ciao". usa la malloc e risolvi il problema (oltre che rispettare le specifiche ).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2007, 03:45   #13
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Non ho capito: e' vietato usare il toupper() ?
Usandolo e' tutto facile:

Codice:
char *toUpperCase (char *strin)
{
  char *strout;
  char *p, *q;

  strout = (char *)malloc (strlen(strin) + 1);
  if (!strout)
    return NULL;  // Cannot allocate memory
  q = strin;
  p= strout;

  while ((*p++ = toupper(*q++)));
  return strout;
}
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2007, 09:54   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
OT

IMHO è molto brutto allocare così...l'utilizzatore della vostra funzione sicuramente si scorderà di deallocare la stringa

In questo caso: o si lascia costruire al chiamante il buffer di output o si sovrascrive la stringa corrente

Concordo che ci sono casi in cui è impossibile attuare la prima politica, ma questo è uno dei tanti in cui non conviene allocare dinamicamente all'insaputa dell'utente.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Dreame H15 Mix: la soluzione 7-in-1 per ...
AirPods Pro 3 in forte sconto su Amazon:...
36 offerte Amazon, molte appena partite:...
2 caricatori multipli eccezionali: da 28...
OLED e 360 Hz a un prezzo senza preceden...
Roborock Q10 S5+ a un prezzo molto conve...
Upgrade PC a prezzo ridotto: le migliori...
Sono i 6 smartphone migliori su Amazon: ...
Google Pixel 9a a 361€, mai così ...
Super sconti sugli spazzolini Oral-B, an...
Aspira a 6000Pa, lava bene, costa 139€: ...
Nuove scorte: torna il portatile tuttofa...
Toyota usa giochi e premi per spingere i...
HarmonyOS ha raggiunto la soglia di sopr...
Le offerte Amazon più convenienti...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v