Como usar a função de substrato em c ++

Como usar a função de substrato em c ++
A maneira de cortar qualquer parte de uma corda é chamada de sub-string. A função substr () existe em C ++ para gerar uma nova string cortando uma parte específica de uma string. O corda.h O arquivo da biblioteca é necessário para incluir para usar esta função. Esta função tem 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, você deve verificar se o compilador G ++ está instalado ou não no sistema. Se você estiver usando o código do Visual Studio, instale as extensões necessárias para compilar o código -fonte C ++ para criar o código executável. Aqui, o aplicativo de código do Visual Studio 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 sub-string será iniciada, e o segundo argumento contém o comprimento da sub-string. A função retornará a sub-cordão se a posição inicial válida e o comprimento forem dados. Os vários usos desta função mostraram 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 seguinte código para gerar uma substring a partir de um valor de string. Uma sequência 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 sub-string têm nos valores de argumento da função substr (). A sequência original e a substring serão impressas após a execução do código.

// inclui bibliotecas necessárias
#incluir
#incluir
int main ()
// Defina uma variável de string
std :: string origalaltr = "Welcome to linuxhint";
// Corte a sub -string usando substr ()
std :: string newstr = OriginalTr.substr (11,9);
// Imprima a sequência original
std :: cout <<"The original string is :" << originalstr << '\n';
// Imprima a sub -string
std :: cout <<"The substring is :" << newstr << '\n';
retornar 0;

Saída:

De acordo com o código, a sequência original é 'Bem -vindo ao Linuxhint'. 11 deu como a posição inicial da sub-fita que é a posição do caractere 'L' e 9 deu como o valor do comprimento da sub-string. 'Linuxhint'Retornou como a saída da função substr () após executar o código.

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

O código a seguir gerará a sub-corda depois de pesquisar a posição da string específica. Crie um arquivo C ++ com o seguinte código para testar o código. Um valor de string das múltiplas palavras foi definido no código. Em seguida, a posição de uma string específica é pesquisada na sequência principal usando a função find (). A função substr () foi usada para gerar a sub-string a partir do início da string para o valor da posição que será retornado pela função find ().

#incluir
#incluir
usando namespace std;
int main ()

std :: string strdata = "eu gosto de programação C ++";
// Vamos encontrar a posição de "-" usando STR.encontrar()
int position = strdata.encontre ("programação");
// Vamos obter a substring até este padrão
std :: string newstr = strdata.substr (0, posição);
std :: cout << strData << '\n';
std :: cout << newstr << '\n';
retornar 0;

Saída:

De acordo com o código, o valor principal da string é: “Eu gosto de programação C ++”E o valor da sequência de busca é 'programação' que existe na corda principal. Então, a saída é 'Eu gosto de c++'Depois de executar o código.

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

A função substr () tem sido usada com manuseio 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 seguinte código para testar o código. No bloco de tentativa, um valor de string de uma palavra foi atribuído e uma posição inicial inválida foi usada na função substr () que aumentará uma exceção e imprimirá a mensagem de erro.

#incluir
#incluir
int main ()
tentar
// Defina uma variável de string
std :: string origalaltr = "linuxhint";
// Corte a sub -string usando substr ()
std :: string newstr = OriginalTr.substr (11,9);
// Imprima a sub -string
std :: cout <<"The substring is :" << newstr << '\n';

Catch (const std :: out_of_range)
std :: Cerr << "The position is out of Range.\n";

retornar 0;

Saída:

De acordo com o código, o valor principal da string é: “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 o substr () para dividir a string

O exemplo a seguir mostra o uso da função substr () para dividir uma string baseada em um delimitador. A função find () foi usada para pesquisar na posição Delimiter, e a função EASE () foi usada para remover a corda dividida com o delimitador da string principal. O loop 'while' usou para encontrar todas as posições do delimitador na sequência principal e armazenar o valor dividido na matriz vetorial. Em seguida, os valores da matriz vetorial foram impressos.

linuxhint@hp34: ~ $ cat a.cpp
#incluir
#incluir
#incluir
int main ()
// Defina a corda
std :: string stringdata = "php: c ++: python:";
// Defina o separador
std :: string separador = ":";
// Declare a variável vetorial
std :: vetor línguas;
// declarar variável inteira
int position;
// Declare a variável string
std :: string Outstr;
/*
Divida a string usando a função substr ()
e adicionando a palavra dividida no vetor
*/
while ((position = stringdata.encontre (separador)) != std :: string :: npos)
línguas.push_back (StringData.substr (0, posição));
StringData.Apagar (0, posição + separador.comprimento());

// Imprima todas as palavras divididas
para (Const Auto & Outstr: Languages)
std :: cout << outstr << std::endl;

retornar 0;

Saída:

De acordo com o código, o valor principal da string é “PHP: C ++: Python”E o valor do delimitador é ': '. A saída a seguir aparecerá após a execução do script acima.

Conclusão

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