View Single Post
Old 11-07-2008, 10:38   #1
Reflex86
Member
 
L'Avatar di Reflex86
 
Iscritto dal: Aug 2003
Cittā: Roma
Messaggi: 88
[C++] problema stringhe \0

Ciao a tutti,
sto riscontrando un problema un po' anomalo, di cui non capisco il motivo. Il codice č il seguente:

Codice:
#include <cstring>
#include <string>
#include <iostream>
using namespace std;

char* toUpper(char* str){
     char* cur = str;
     while (*cur!= '\0')
     {
      *cur = toupper(*cur);
      cur++;      
     }
return str;
}

int main()
{
 char * b = "prova";
 cout << toUpper(b) << endl;    
 system("pause");    
}
In fase di compilazione tutto ok, in fase di esecuzione lancia una eccezione e si blocca. Non riesco a capirne il motivo, sapreste aiutarmi? Anche se levo la funzione toupper e metto una assegnazione qualunque, tipo *cur = 'a'; fa lo stesso.

La funzione dovrebbe modificare la stringa passata in input e restituire un puntatore alla stringa stessa
__________________
Config: Asus P5QL-E, Core2Duo E8400 3,0GHz, POV GeForce 9800GTX+, HD Seagate Barracuda 500GB, 4GB Kingston DDR800
Reflex86 č offline   Rispondi citando il messaggio o parte di esso