2010-05-09 16 views

Respuesta

6

Desde un std::string, std::string::substr va a crear un nuevo std::string de una ya existente dado un índice de inicio y una longitud. Debería ser trivial determinar la longitud necesaria dado el índice final (aunque dependerá de si el índice final es inclusivo o exclusivo).

Si está intentando crear una subcadena a partir de una cadena de estilo C (una matriz char terminada en NUL), puede usar el constructor std::string(const char* s, size_t n). Por ejemplo:

const char* s = "hello world!"; 
size_t start = 3; 
size_t end = 6; // Assume this is an exclusive bound. 

std::string substring(s + start, end - start); 
+1

Nota, eso no comprueba que 'end' esté más allá del final de la cadena C. – Potatoswatter

7
std::string thesub = thestring.substr(start, length); 

o

std::string thesub = thestring.substr(start, end-start+1); 

suponiendo que quieren que el carácter end XX que se incluirán en la subcadena.

Cuestiones relacionadas