Como usar a função substr () em C ++

How Use Substr Function C



A maneira de cortar qualquer porção de uma corda é chamada de subcadeia. A função substr () existe em C ++ para gerar uma nova string cortando uma parte específica de uma string. o string.h é necessário incluir o arquivo de biblioteca para usar esta função. Esta função possui dois argumentos. O primeiro argumento contém a posição inicial da nova string e o segundo argumento contém o comprimento da string. A maneira de usar a função substr () em C ++ foi explicada neste tutorial.

Pré-requisito

Antes de verificar os exemplos deste tutorial, é necessário verificar se o compilador g ++ está instalado ou não no sistema. Se você estiver usando o Visual Studio Code, instale as extensões necessárias para compilar o código-fonte C ++ para criar o código executável. Aqui, o aplicativo Visual Studio Code foi usado para compilar e executar o código C ++.







Sintaxe

string substr (size_t pos = 0, size_t len ​​= npos) const;



Aqui, o primeiro argumento contém a posição inicial de onde a substring será iniciada, e o segundo argumento contém o comprimento da substring. A função retornará a subsequência se a posição inicial válida e o comprimento forem fornecidos. Os vários usos desta função são mostrados na próxima parte deste tutorial.



Exemplo 1: uso simples de substr ()

O exemplo a seguir mostra o uso mais comum e simples da função substr (). Crie um arquivo C ++ com o código a seguir para gerar uma substring a partir de um valor de string. Uma string de várias palavras foi atribuída a uma variável de string. Em seguida, a posição inicial válida e o comprimento da substring têm nos valores do argumento da função substr (). A string original e a substring serão impressas após a execução do código.





// Incluir bibliotecas necessárias
#incluir
#incluir


inta Principal() {
// Defina uma variável de string
horas::fragmentooriginalstr='Bem-vindo ao Linuxhint';
// Corte a sub string usando substr ()
horas::fragmentonewstr=originalstr.substr (onze,9);
// Imprime a string original
horas::custo <<'A string original é:' <<originalstr<< ' n';
// Imprime a sub string
horas::custo <<'A substring é:' <<newstr<< ' n';

Retorna 0;
}

Saída:

De acordo com o código, a string original é ‘ Bem-vindo ao LinuxHint ‘. 11 forneceu como a posição inicial da substring que é a posição do caractere 'L', e 9 forneceu como o valor do comprimento da substring. ‘ LinuxHint ‘Retornou como a saída da função substr () após a execução do código.



Exemplo 2: usando substr () com base na posição de uma string específica

O código a seguir irá gerar a substring após pesquisar a posição da string específica. Crie um arquivo C ++ com o código a seguir para testar o código. Um valor de string de várias palavras foi definido no código. Em seguida, a posição de uma determinada string é pesquisada na string principal usando a função find (). A função substr () foi usada para gerar a substring começando no início da string até o valor da posição que será retornado pela função find ().

// Incluir bibliotecas necessárias
#incluir
#incluir
usando namespacehoras;

inta Principal()
{
horas::fragmentostrData= 'Eu gosto de programação C ++';

// Vamos encontrar a posição de '-' usando str.find ()
intposição=strData.achar('programação');

// Obteremos a substring até este padrão
horas::fragmentonewstr=strData.substr(0posição);

horas::custo <<strData<< ' n';
horas::custo <<newstr<< ' n';

Retorna 0;
}

Saída:

De acordo com o código, o valor da string principal é, Eu gosto de programação C ++ e o valor da string de pesquisa é, ' programação' que existe na string principal. Então, a saída é, ' Eu gosto de C ++ ‘Depois de executar o código.

Exemplo 3: Usando substr () com tratamento de exceção

A função substr () foi usada com tratamento de exceção no código a seguir. A exceção será gerada se a posição inicial inválida for fornecida na função substr (). Crie um arquivo C ++ com o código a seguir para testar o código. No bloco try, um valor de string de uma palavra foi atribuído e uma posição inicial inválida foi usada na função substr () que gerará uma exceção e imprimirá a mensagem de erro.

// Incluir bibliotecas necessárias
#incluir
#incluir

inta Principal() {
Experimente{

// Defina uma variável de string
horas::fragmentooriginalstr='Linuxhint';
// Corte a sub string usando substr ()
horas::fragmentonewstr=originalstr.substr (onze,9);
// Imprime a sub string
horas::custo <<'A substring é:' <<newstr<< ' n';
}
pegar (consthoras::fora de alcance) {
horas::cerr << 'A posição está fora do alcance. n';
}
Retorna 0;
}

Saída:

De acordo com o código, o valor da string principal é, LinuxHint e o valor da posição inicial é 11 que não existe. Portanto, a exceção foi gerada e a mensagem de erro foi impressa após a execução do código.

Exemplo 4: usando substr () para dividir a string

O exemplo a seguir mostra o uso da função substr () para dividir uma string com base em um delimitador. A função find () foi usada para pesquisar a posição do delimitador, e a função erase () foi usada para remover a string dividida com o delimitador da string principal. O loop ‘while’ é usado para encontrar todas as posições do delimitador na string principal e armazenar o valor dividido na matriz vetorial. A seguir, os valores da matriz vetorial foram impressos.

// Incluir bibliotecas necessárias
#incluir
#incluir
#incluir

inta Principal(){
// Defina a string
horas::fragmentostringData= 'PHP: C ++: Python:';
// Defina o separador
horas::fragmentoseparador= ':';
// Declara a variável vetorial
horas::vetorlínguas{};
// Declare a variável inteira
intposição;
// Declara variável de string
horas::fragmentooutstr;
/ *
Divida a string usando a função substr ()
e adicionar a palavra dividida ao vetor
* /

enquanto ((posição=stringData.achar(separador)) !=horas::fragmento::npos) {
línguas.retrocesso(stringData.substr(0posição));
stringData.apagar(0posição+separador.comprimento());
}
// Imprime todas as palavras divididas
para (const auto Eoutstr:línguas) {
horas::custo <<outstr<<horas::endl;
}
Retorna 0;
}

Saída:

De acordo com o código, o valor da string principal é PHP: C ++: Python e o valor do delimitador é, ‘ : ’ . A seguinte saída aparecerá após a execução do script acima.

Conclusão

O objetivo principal de usar a função substr () é recuperar uma substring de uma string mencionando a posição inicial e o comprimento da substring. Os vários usos desta função foram explicados neste tutorial usando vários exemplos para ajudar os novos usuários de C ++ a usá-la corretamente em seu código.