2012-11-30 10 views
5

Sto provando a eseguire una semplice stringa di accesso a 0 e per qualche motivo ottengo un errore di limite in Borland Builder 5 C++.Borland Builder 5 C++ Le stringhe non possono indicizzare a 0

Qualcuno ha trovato un modo per aggirare questo? Esiste un tipo speciale di stringa che utilizza il compilatore Borland?

+0

Sì. Sono basati su 1, perché C++ Builder e Delphi condividono tipi comuni. (Il VCL in C++ Builder è scritto e compilato dal compilatore di Delphi.) Quindi usate l'indicizzazione basata su 1, o convertiteli in una stringa compatibile con C++ se per qualche motivo dovete avere indici basati su 0. –

+0

La cosa divertente è che la gestione dell'indice 0 non è uguale in tutti i metodi AnsiString. Ad esempio, in BCB5, 'SubString()' restituisce una stringa vuota e non genera un errore se gli si assegna un indice inferiore a 1. Ma in BCB6 e versioni successive, gli indici inferiori a 1 vengono invece mappati in modo silente all'indice 1. –

+0

@Remy, è strano. Ho postato un commento invece di una risposta perché sapevo che avresti visto la domanda e avrei potuto rispondere meglio di quanto avrei potuto; Uso raramente Builder. :-) –

risposta

4

Sì, è un tipo di stringa speciale utilizzato da Borland C++ Builder. Le variabili di questo tipo sono indicizzate da 1.

So che potrebbe essere un po 'di confusione - anche io non potevo crederci per molto tempo.

Problemi correlati