Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-10-2006, 20: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, 20: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, 20: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, 21: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, 21: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, 21: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, 21: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, 21: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, 10: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, 11: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, 12: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, 12: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, 12: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, 19: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 19:53.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2006, 20: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, 09: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 09:02.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-10-2006, 17: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, 17: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, 17: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, 17: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


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Le tute spaziali AxEMU di Axiom Space pe...
Dongfeng sfida la NATO: navi dalla Cina ...
5G Standalone per il mondo marittimo: Er...
Nova Lake-S: configurazioni fino a 52 co...
Baxi presenta la pompa di calore Alya E ...
PC ASUS e Acer vietati in Germania: il t...
Stellantis rilancia il diesel in Europa:...
Truffa per utenti Trezor e Ledger: lette...
Wi-Fi 7 conveniente: FRITZ! lancia 4630,...
La Formula 1 dei robot tagliaerba miglio...
Il nuovo gioco del creatore di God of Wa...
Grok arriva sulle Tesla in Europa: l'int...
Assassin's Creed IV: Black Flag Remake p...
Il padre di God of War attacca Sons...
È operativo il primo computer qua...
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: 07:09.


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