|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
[Visual C++] Problema lettere maiuscole e minuscole
Ciao a tutti!
Ho realizzato un programma in visual C++ 2008 ed ho un problemino... In pratica ho inserito un comando che mi dice se leggi due stringhe diverse dai un messaggio di errore. Il problema è che le stringhe non sono diverse ma una è scritta in maiuscolo e l'altra in minuscolo. Come posso ovviare a questo? Grazie in anticipo per una risposta.
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Nella versione più semplice:
Codice:
std::string data = “Maiuscole e Minuscole”; std::transform(data.begin(), data.end(), data.begin(), tolower);//o toupper |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Ma devo creare una funzione che converte da minuscole a maiuscole, oppure se ho la stringa "pippo"e la voglio trasformare in maiuscolo metto tolower(pippo) ed avrò PIPPO?
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
tolower è una funzione standard C che converte un singolo carattere in minuscolo, toupper in maiuscolo. |
|
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Quote:
Se si il problema è che io ho più stringhe e non solo 2. Grazie tomminno
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Be', tomminno ti ha dato il codice per trasformare una stringa singola in maiuscolo: basta applicarla a tutte le stringhe del caso, e poi eventualmente fai il confronto.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Codice:
void ToLower(std::string & data) { transform(data.begin(), data.end(), data.begin(), tolower); } |
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Ok grazie! Ma transform mi dice identificatore non trovato...che cos'è? Fa parte di una libreria che devo dichiarare? Se si quale?
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Ok ho fatto la funzione ed ho incluso la libreria. Mi potresti fare un esempio per convertire da pippo a PIPPO?
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Allora... il problema è che ho questa linea di codice:
if(RemSlashN(RemSpace(ContrCabVec->GetValue(n)->ToString())) != RemSlashN(RemSpace(ContrAEdPVec->GetValue(n)->ToString()))) che vede se le due stringhe sono diverse manda un messaggio di errore. Ma in realtà le due stringhe NON sono diverse ma la prima è scritta in minuscolo e la seconda in maiuscolo e quindi mi da il messaggio di errore. La funzione che mi hai dato te se la inserisco in questo modo : if(RemSlashN(RemSpace(ToLower(ContrCabVec->GetValue(n)->ToString()))) != RemSlashN(RemSpace(ToLower(ContrAEdPVec->GetValue(n)->ToString())))) mi da un messaggio di errore in compilazione e mi dice : Check_Sheet::Form1::ToLower': impossibile convertire il parametro 1 da 'System::String ^' a 'std::string &' Appunto ti ho chiesto un esempio stupido su come applicare la funzione che mi hai dato... ![]() ![]()
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Ah beh quello non è C++, ma C++/CLI.
Chissà quando mai finirà questa confusione tra 2 linguaggi differenti. Hai il metodo ToUpper e ToLower sulle stringhe. Ma già che sei in .NET esiste il metodo String::Compare |
![]() |
![]() |
![]() |
#14 | |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Quote:
if(RemSlashN(RemSpace(ToLower(ContrCabVec->GetValue(n)->ToString()))) != RemSlashN(RemSpace(ToLower(ContrAEdPVec->GetValue(n)->ToString())))->ToUpper()) e non mi da più l'errore! Grazie tomminno sei sempre il number1! ![]()
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Occhio che hai messo un ToUpper di troppo!
|
![]() |
![]() |
![]() |
#16 |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Perchè? Così funziona alla grande!
![]()
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#18 | |
Member
Iscritto dal: Mar 2010
Città: Roma
Messaggi: 132
|
Quote:
![]() ![]()
__________________
Se devi fare una cosa falla fatta bene... sennò che la fai a fare?! ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:37.