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 ++.
Divida a string usando a função getline ()
A função getline () é usada para ler caracteres de uma string ou de um conteúdo de arquivo até que um determinado delimitador ou separador seja encontrado e armazenar cada string de análise em outra variável de string. A função continuará a tarefa até que todo o conteúdo da string ou arquivo seja analisado. A sintaxe desta função é fornecida a seguir.
Sintaxe:
istreamEObter linha(istreamEé, stringEstr,Caracteresdelim);
Aqui, o primeiro parâmetro, isstream, é o objeto de onde os personagens serão extraídos. O segundo parâmetro é uma variável de string que armazenará o valor extraído. O terceiro parâmetro é usado para definir o delimitador que será usado para extrair a string.
Crie um arquivo C ++ com o código a seguir para dividir uma string com base no delimitador de espaço usando o Obter linha() função. Um valor de string de várias palavras foi atribuído a uma variável e o espaço foi usado como separador. Uma variável de vetor foi declarada para armazenar as palavras extraídas. Em seguida, o loop ‘for’ é usado para imprimir cada valor da matriz vetorial.
// Incluir bibliotecas necessárias#incluir
#incluir
#incluir
#incluir
inta Principal()
{
// Defina os dados da string que serão divididos
horas::fragmentostrData= 'Aprenda Programação C ++';
// Definir dados constantes que serão trabalhados como delimitador
const Caracteresseparador= '';
// Defina a variável de matriz dinâmica de strings
horas::vetoroutputArray;
// Construir um stream a partir da string
horas::stringstreamstreamData(strData);
/ *
Declare a variável de string que será usada
para armazenar dados após a divisão
* /
horas::fragmentohoras;
/ *
O loop irá iterar os dados divididos e
insira os dados no array
* /
enquanto (horas::Obter linha(streamData, val, separator)) {
outputArray.retrocesso(horas);
}
// Imprime os dados divididos
horas::custo << 'A string original é:' <<strData<<horas::endl;
// Leia a matriz e imprima os dados divididos
horas::custo << ' nOs valores depois de dividir a string com base no espaço: ' <<horas::endl;
para (auto Ehoras:outputArray) {
horas::custo <<horas<<horas::endl;
}
Retorna 0;
}
Saída:
A seguinte saída aparecerá após a execução do código acima.
Divida a string usando a função strtok ()
A função strtok () pode ser usada para dividir uma string, tokenizando a parte da string com base em um delimitador. Ele retorna um ponteiro para o próximo token, se existir; caso contrário, ele retorna um valor NULL. o string.h é necessário um arquivo de cabeçalho para usar esta função. Um loop exigirá a leitura de todos os valores divididos da string. O primeiro argumento contém o valor da string que será analisado e o segundo argumento contém o delimitador que será usado para gerar o token. A sintaxe desta função é fornecida a seguir.
Sintaxe:
Caracteres * Strtok ( Caracteres *str,const Caracteres *delimitadores);Crie um arquivo C ++ com o código a seguir para dividir uma string usando a função strtok (). Uma matriz de caracteres é definida no código contendo dois pontos (‘:’) como separador. A seguir, o strtok () A função é chamada com o valor da string e o delimitador para gerar o primeiro token. O ' enquanto 'Loop é definido para gerar os outros tokens e os valores de token até o NULO valor é encontrado.
// Incluir bibliotecas necessárias#incluir
#incluir
inta Principal()
{
// Declara uma matriz de caracteres
CaracteresstrArray[] = 'Mehrab Hossain: Profissional de TI: [email protegido]: +8801726783423';
// Retorna o primeiro valor de token com base em ':'
Caracteres *tokenValue= Strtok(strArray,':');
// Inicializa a variável do contador
intcontador= 1;
/ *
Repita o loop para imprimir o valor do token
e dividir os dados restantes da string para obter
o próximo valor de token
* /
enquanto (tokenValue!= NULO)
{
E se(contador== 1)
printf('Nome:% s n', tokenValue);
outro E se(contador== 2)
printf('Ocupação:% s n', tokenValue);
outro E se(contador== 3)
printf('Email:% s n', tokenValue);
outro
printf('Número do celular:% s n', tokenValue);
tokenValue= Strtok(NULO,':');
contador++;
}
Retorna 0;
}
Saída:
A seguinte saída aparecerá após a execução do código acima.
Divida a string usando as funções find () e erase ()
A string pode ser dividida em C ++ usando as funções find () e erase (). Crie um arquivo C ++ com o código a seguir para verificar os usos das funções find () e erase () para dividir um valor de string com base em um delimitador específico. O valor do token é gerado encontrando a posição do delimitador usando a função find (), e o valor do token será armazenado após a remoção do delimitador usando a função erase (). Esta tarefa será repetida até que todo o conteúdo da string seja analisado. A seguir, os valores da matriz vetorial serão impressos.
// Incluir bibliotecas necessárias#incluir
#incluir
#incluir
inta Principal(){
// Defina a string
horas::fragmentostringData= 'Bangladesh e Japão e Alemanha e Brasil';
// Defina o separador
horas::fragmentoseparador= 'e';
// Declara a variável vetorial
horas::vetorpaís{};
// Declare a variável inteira
intposição;
// Declara variável de string
horas::fragmentooutstr, token;
/ *
Divida a string usando a função substr ()
e adicionar a palavra dividida ao vetor
* /
enquanto ((posição=stringData.achar(separador)) !=horas::fragmento::npos) {
símbolo=stringData.substr(0posição);
// Remova o espaço extra da frente da corda dividida
país.retrocesso(símbolo.apagar(0, símbolo.find_first_not_of('')));
stringData.apagar(0posição+separador.comprimento());
}
// Imprime todas as palavras divididas exceto a última
para (const auto Eoutstr:país) {
horas::custo <<outstr<<horas::endl;
}
// Imprime a última palavra dividida
horas::custo <<stringData.apagar(0, stringData.find_first_not_of('')) <<horas::endl;
Retorna 0;
}
Saída:
A seguinte saída aparecerá após a execução do código acima.
Conclusão
Três maneiras diferentes de dividir uma string em C ++ foram explicadas neste tutorial usando exemplos simples para ajudar os novos usuários de Python a realizar a operação de divisão facilmente em C ++.