Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2 implementa un mocio a nastro che esegue una pulizia dettagliata del pavimento di casa, in abbinamento ad un potente motore di aspirazione della polvere: un prodotto ideale per gestire in autonomia e con grande efficacia le necessità di pulizia dei pavimenti di casa
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
MSI FORGE GK600 TKL WIRELESS: switch lineari hot-swap, tripla connettività, display LCD e 5 strati di fonoassorbimento. Ottima in gaming, a 79,99 euro
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-10-2006, 19:03   #1
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
[c++] Da Stringa a ASCII

il problema è semplice..
devo fare un programma in c++ che data una stringa mi restituisca il codice ascii della stringa inserita...

ad esempio inserisco "ciao" e mi restituisce ttt il codice ASCII in fila per ogni lettera...
nn so se mi sn fatto capire...
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2006, 19:35   #2
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da Goten_ssj
il problema è semplice..
devo fare un programma in c++ che data una stringa mi restituisca il codice ascii della stringa inserita...

ad esempio inserisco "ciao" e mi restituisce ttt il codice ASCII in fila per ogni lettera...
nn so se mi sn fatto capire...
leggi un bytes alla volta e fai:
per decimale usi atoi();
per esadecimale usi sprintf(hex, "%02x" stringa & 0xff);


ciao
okay è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2006, 19:39   #3
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
e se sono lettere??
cioè..se uno immette "ho 2 gatti"
mi dovrebbe restituire l'ascii del carattere h + o + spazio + 2 + spazio + g + a + t + t + i tutto attaccato...
io ci ho provato ma non so proprio come fare...
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2006, 20:18   #4
Qu@ker
Member
 
Iscritto dal: Apr 2004
Messaggi: 130
Codice:
#include <iostream>
#include <string>
#include <iomanip>

int main(void)
{
	std::string esempio = "Ho 2 gatti";

	std::cout.fill('0');
	for (size_t i = 0; i != esempio.length(); ++i)
		std::cout << std::hex << std::setw(2)
                            << static_cast<int>(esempio[i]);
	std::cout << std::endl;
}
Qu@ker è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2006, 20:20   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Non si deve usare atoi(), perché essa fa una conversione da un numero contenuto in una stringa a un valore numerico (es. "12" -> 12).
Il valore contenuto in un char è già di per sé il codice ASCII del carattere!

Codice:
string s = "ho 2 gatti";

for (int i=0; i<s.length(); i++)
    cout << (int) s.at (i) << " ";

cout << endl;
facendo il cast ad int, stampo il valore numerico del carattere, che è il suo codice ASCII.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2006, 20:22   #6
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
mi ero dimenticato di dire che io lavoro con il C++ Builder della Borland e quindi in ambiente visuale...

nn ho mai usato il comando cout e non so se funzioni in visuale...me lo spiegate?
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2006, 20:29   #7
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
Quote:
Originariamente inviato da Qu@ker
Codice:
#include <iostream>
#include <string>
#include <iomanip>

int main(void)
{
	std::string esempio = "Ho 2 gatti";

	std::cout.fill('0');
	for (size_t i = 0; i != esempio.length(); ++i)
		std::cout << std::hex << std::setw(2)
                            << static_cast<int>(esempio[i]);
	std::cout << std::endl;
}
ok...questo codice non mi dà errori...adesso il problema è capirlo e inserirlo nel mio bottone :P
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2006, 20:32   #8
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
non capisco:

std::
cout
cout.fill
<<
size_t
static_cast
end1


scusate, ma sono davvero niubbo in questo linguaggio e non vorrei disturbarvi troppo però se mi aiutate magari raggiungo i vostri livelli...e soprattutto desidererei capire come avete imparato e dove avete accresciuto le vostre conoscenze?


ringrazio ttt...
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2006, 09:42   #9
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
lo so che è sempre difficile aiutare i niubbi xò nn penso sia così lungo da spiegare..
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2006, 10:03   #10
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Goten_ssj
non capisco:

std::
cout
cout.fill
<<
size_t
static_cast
end1
std è un "namespace" entro cui sono dichiarate certe classi della libreria del C++.
Si può fare std::string oppure mettere using namespace std; all'inizio e poi usare semplicemente string.

cout è un oggetto di classe ostream, serve per scrivere sullo standard-output.

cout.fill è un metodo che imposta il carattere di riempimento quando si usa width() e il numero da scrivere è più piccolo.

<< è un operatore, di cui è stato fatto l'overload per poter scrivere vari tipi di dati su uno stream.

size_t è il tipo di dato che viene normalmente restituito da sizeof(). Vedilo come un tipo "intero".

static_cast serve per fare un cast "particolare". I dettagli però non me li ricordo.

endl (non end1!) indica il newline. cout << endl, scrive un newline sullo standard-output.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2006, 11:10   #11
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
quindi cout e end1 nel c++ visuale non mi servono vero?
il problema e come tradurli nel visuale ora.. :P
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2006, 11:28   #12
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da andbin
Non si deve usare atoi(), perché essa fa una conversione da un numero contenuto in una stringa a un valore numerico (es. "12" -> 12).
Il valore contenuto in un char è già di per sé il codice ASCII del carattere!

Codice:
string s = "ho 2 gatti";

for (int i=0; i<s.length(); i++)
    cout << (int) s.at (i) << " ";

cout << endl;
facendo il cast ad int, stampo il valore numerico del carattere, che è il suo codice ASCII.

si giusto... ho scritto di getto. Intendo:
sprintf (decimale, "%d ", stringa & 0xff);

ho fatto copia incolla dal mio code e mi sono impappinato:

if(atoi(decimale)<32)
strcat (ok, ".");
okay è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2006, 11:31   #13
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
uhm..non ci sto capendo...
potete mettere pure i commenti? grazie mille :P
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2006, 18:50   #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
E' giusto quello che dice andbin...se la stringa è un vettore di caratteri invece fai così (stessa logica di quello di andbin):

for(int i = 0; i < strlen(s); ++i)
cout << (int)s[i] << " ";

Goten_ssj, andbin e okay: avete la firma irregolare http://www.hwupgrade.it/forum/regolamento.php

Ultima modifica di cionci : 04-10-2006 alle 18:53.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2006, 19:09   #15
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
si..ma il cout in visuale come lo traduco???
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2006, 08:00   #16
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
Intanto ringrazio okay e andbin per aver modificato la firma...ora manchi solo tu, Goten_ssj

Per avere la stringa da stampare nella tua textbox fai così:

ostringstream ost;
for(int i = 0; i < strlen(s); ++i)
ost << (int)s[i] << " ";

E dopo devi immettere nella textbox ost.str(); che appunto ritorna la stringa completa...

Ultima modifica di cionci : 05-10-2006 alle 08:02.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2006, 16:01   #17
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
l'unica cosa che sono riuscito a fare per adesso è quella di tradurre 1 solo carattere e mi viene così

Codice:
        char *x;
        int a;
        x=Input->Text.c_str();
        a=int(x[0]);
        Output->Text=a;
dove:
Input = Textbox di input
Output = Textbox di output

praticamente questo codice inserito 1 qualsiasi carattere nella textbox di input, restituisce la sua sequenza in ascii..
ecco...ora devo farlo per 1 intera stringa...
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2006, 16:05   #18
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
Codice:
ostringstream ost;
for(int i = 0; i < strlen(s); ++i)
     ost << (int)Input->Text[i] << " ";

Output->Text=ost.str();
Dovrebbe andare...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2006, 16:09   #19
Goten_ssj
Senior Member
 
Iscritto dal: Oct 2006
Messaggi: 352
dice:
Undefined symbol 'ostringstream'
Goten_ssj è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2006, 16:23   #20
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
Credo che la prima cosa che debba saper fare un programmatore è non arrendersi alla prima difficoltà...quindi credo che tu debba essere in grado di trovare quale libreria includere da solo
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Narwal Flow 2: la pulizia di casa con un mocio a nastro Narwal Flow 2: la pulizia di casa con un mocio a...
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Blue Origin ha mostrato gli interni del ...
Linux alla pari di Windows in gioco: con...
Il rientro del secondo stadio del razzo ...
Il controller ufficiale Microsoft per Xb...
DJI Power 1000 Mini: la power station da...
IT Wallet sempre più aperto: in a...
Samsung pronta alla svolta: il Galaxy S2...
Segway Navimow i206 AWD, il robot taglia...
Zeekr 7GT debutta in Italia alla Milano ...
Ubisoft in difficoltà: Splinter C...
Tesla Cybertruck, numeri che fanno discu...
Intel Arc G3 Extreme: fino a 80W di pote...
SteelSeries Aerox 3 Wireless Gen 2 recen...
Tesla nel deserto senza batteria: il via...
Meta licenzia a partire da fine maggio: ...
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: 14:44.


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