Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-10-2006, 15:18   #1
axxel84
Member
 
Iscritto dal: Jul 2006
Messaggi: 92
[C]: problema con conversione da stringa ad intero

Sto scrivendo un programmino multimodulo per un corso all' università.
Uno dei moduli che lo compone è un convertitore numerico: prende in input una stringa di simboli da interpretare in una data base e ne fa la conversione in base 10.

Esempio:
se setto la base a 8 e decodifico la stringa "15", otterrò il numero naturale 13

il problema è che, quando passo la stringa carattere per carattere, per interpretarli uno alla volta e moltiplicarli per la corrispondente potenza della base, il primo carattere della stringa mi viene sempre "letto male".

Esempio di output con base = 8 e valore da convertire = 3274:

Quote:
Conversione di $274 da base 8 a base 10 = 1174302908
a cosa può essere dovuto il problema?
allego i tre sorgenti per maggiore chiarezza (sono rinominati come txt, perchè altrimenti non potevo allegarli)
Allegati
File Type: txt converter.c.txt (1.2 KB, 3 visite)
File Type: txt converter.h.txt (151 Bytes, 2 visite)
File Type: txt mainconverter.c.txt (1.2 KB, 1 visite)
axxel84 è offline   Rispondi citando il messaggio o parte di esso
Old 18-10-2006, 16:46   #2
-fidel-
Senior Member
 
L'Avatar di -fidel-
 
Iscritto dal: Jan 2006
Messaggi: 2722
Questa funzione ad esempio non va affatto bene

Codice:
char* maiusc(char* s1)
{
  char* s2;
  int i;
  for(i = 0; i < strlen(s1); i++)
    if(islower(s1[i]))
      s2[i] = toupper(s1[i]);
  return(s2); 
}
s2 è un puntatore (che non punta ad alcuna zona di memoria allocata) e tu gli assegni anche più di un carattere...

EDIT: Io la modificherei così:

Codice:
void maiusc(char* s1)
{
  int i;
  for(i = 0; i < strlen(s1); i++)
    if(islower(s1[i]))
      s1[i] = toupper(s1[i]);
  return;
}
occhio che non c'è alcun controllo di errore (del tipo, controllare se *s1 è null, oppure controllare il valore ritornato da strlen, ma ho voluto lasciare il più possibile immutato il tuo codice.
Personalmente userei ad esempio strnlen() invece di strlen().
__________________

- Spesso gli errori sono solo i passi intermedi che portano al fallimento totale.
- A volte penso che la prova piu' sicura che esiste da qualche parte una forma di vita intelligente e' il fatto che non ha mai tentato di mettersi in contatto con noi. -- Bill Watterson

Ultima modifica di -fidel- : 18-10-2006 alle 16:53.
-fidel- è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Guild Wars 3 è ufficiale: ArenaNe...
I giocatori voltano le spalle a Linux? L...
Instagram Plus arriva in Italia: cosa in...
XBOX: la nuova CEO non ha ancora le idee...
Intel non ha intenzione di abbandonare i...
La AI Mode sarà attiva di default...
Marvel's Wolverine non sarà un op...
Star Wars Zero Company esce ad agosto: n...
Bonus Decoder: fino al 70% di sconto con...
Virtua Fighter è tornato e non &e...
Il ritorno di Fumito Ueda, autore di Sha...
Cooler Master svela GPU Shield, la nuova...
Samsung Galaxy S27 Pro: sarà lui ...
Così Google ha ottimizzato Chrome...
Xiaomi non cambia idea: il display poste...
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: 15:08.


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