Manera compacta para extraer partes de cuerdas (cabecera FASTA)
Pregunta
Dada la siguiente cadena:
string Header =">day11:1:356617";
¿Cómo extraes todo excepto " > " ;, solo produciendo:
day11:1:356617
Podría hacer un bucle estándar sobre el carácter de cadena y mantener solo otro que " > " ;.
string nStr ="";
for (int i=0; i < Header.size(); i++) {
if (Header[i] != ">") {
nStr = nStr + Header[i];
}
}
Pero el enfoque parece demasiado torpe y lento, en particular tengo que hacer tal Extracción para millones de líneas.
Solución
if (Header[0] == '>') Header = Header.substr(1);
Otros consejos
... No dijiste nombre sobre el " dominio " de las cadenas entrantes o lo que estás buscando para chomp. Si se trata de cadenas de la forma que dio, esta sería la más rápida:
Header.substring(1);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow