Remova a pontuação da string c ++

Remova a pontuação da string c ++
Ao trabalhar em projetos de C ++, precisamos remover caracteres de pontuação para tornar nosso código legível e claro. Você pode pretender apagar caracteres de pontuação ou símbolos de um número de string inserido por um usuário em seu programa para convertê -lo em um número inteiro, pois a pontuação é poderosa. Eles têm o poder de alterar completamente o significado da frase. Considerando isso, o C ++ criou um guia detalhado sobre a remoção de símbolos de pontuação de uma string.

Existem alguns métodos para remover símbolos de pontuação de uma string em c++. Neste artigo, examinaremos como remover marcas de pontuação de uma string usando métodos diferentes em c++.

Exemplo 1: Programa de método de estilo C para remover a pontuação em C++

Esta implementação elimina todos os símbolos, exceto os alfabetos de uma string usando o método da string no estilo C inserido pelo usuário.

Primeiro, temos o principal método do programa. Em geral, temos uma matriz de char como "strline" e definimos o limite da matriz de char para "50". Além disso, definimos outra matriz de char, “Charstring” de Limit “50”. Então, uma variável "int" como "n" e inicialize com o zero. O comando cout imprimirá a declaração "Insira uma string" para um usuário. Através do CIN.abordagem getLine, o usuário entrará na string. A sequência inserida pelo usuário será verificada na condição de loop, que verificará se o caractere "strline" não está no final da string.

Então, se a declaração executar a condição de que a string inserida tenha o alfabeto minúsculo e maiúsculas e verifique se a string tem apenas caracteres ou não. Inicializamos a matriz “Charstring” com os caracteres zero nos quais o programa terminou como a string tem seu valor final de zero caracteres.

#incluir
usando namespace std;
int main ()
Char Strline [50], Charstring [50];
int n = 0;
cout<= 'a' &&StrLine[i]= 'A' &&StrLine[i]<='Z'))

Charstring [n ++] = strline [i];


Charstring [n] = '\ 0';
cout<< "Resultant String: " <retornar 0;

A sequência inserida pelo usuário tem alguns caracteres de pontuação, que são removidos na sequência resultante pelo método do estilo C.

Exemplo 2: Programa de usar o método STD :: Remone_if para remover a pontuação em C++

Uma opção simples para remover a pontuação de uma string é utilizar o algoritmo padrão “std :: remover_if” com a função de membro da string :: EASE. Como o algoritmo "std :: remove_if" não tem acesso ao contêiner de string, ele só pode remover as marcas de pontuação na string. Ele gera um iterador indicando onde deve estar o término, que pode ser removido usando o método STD :: EASE.

O método principal deste programa possui uma maneira padrão de classe de string de declarar uma string como "mystring" e inicializá -la com a string que contém algum caractere de pontuação. Em seguida, temos uma variável "automática" como "Remover", usamos o método std :: remove_if. No método, temos uma função BEGIN () para o primeiro iterador de caracteres da string e o final () para o último iterador de caracteres para a string "mystring". Temos uma matriz char const of Reference Variable "s". Cria uma cópia de cada personagem.

O ISPUNT () é então chamado para verificar a matriz que contém elementos é o personagem. Depois disso, o método apagar é usado que remove a pontuação da string até o último personagem da string.

#incluir
#incluir
#incluir
#incluir
int main ()

std :: string mystring = "ele!@|| ll@o.++| ";
Remover automático = std :: remover_if (mystring.BEGIN (), MyString.fim(), []
(Char Const & s)

retornar std :: ispunc (s);
);
Mystring.Apagar (remova, mystring.fim());
std :: cout<retornar 0;

A sequência mostrada na imagem não possui símbolo de pontuação; Apenas a string com os personagens é devolvida.

Exemplo 3: Programa de usar um loop reverso para remover a pontuação em C++

Como alternativa, podemos usar um loop convencional para localizar pontuações na string dada e apagá -las com o método de string :: EASE. O loop deve estar em ordem inversa para evitar o desempenho não determinístico enquanto remove os componentes durante a iteração.

A string é definida com o nome "String_str" como em uma classe padrão de string, e a string contém a string com alguns caracteres de alfabeto e alguns símbolos de pontuação. Após a declaração de string, temos um loop para itera sobre cada caractere de string em ordem invertida. Em seguida, temos uma função ispunct que verifica os caracteres de pontuação na sequência especificada na condição se. Se algum caráter de pontuação for encontrado, ele será apagado na função de apagamento.

#incluir
#incluir
#incluir
int main ()

std :: string string_str = "c '| plus [pluspro@@@^a & mm!-ing ";
para (int i = string_str.tamanho () - 1; i> = 0; eu--)
if (ispunct (string_str [i]))
String_str.apagar (i, 1);


std :: cout<< "String :" <retornar 0;

A sequência resultante não tem caráter de pontuação, como mostrado na imagem a seguir.

Exemplo 4: Programar usando uma função personalizada para remover a pontuação em C++

Como alternativa, o procedimento anterior pode ser movido para uma função separada, que gera uma cópia local da string e opera nela, retornando o valor formatado ao código original. A função personalizada é usada para aprimorar a funcionalidade para ativar conjuntos de caracteres distintos ou até passar a função de critério personalizada para o terceiro parâmetro do algoritmo Remowe_if.

Temos a definição de função como "Removerpunctuation" no programa a seguir e passamos a referência da string "STR" como um parâmetro. Na função, temos "temp" como uma função para a qual passamos "str. Em seguida, temos uma função de apagar chamando a função std :: remove_if.

Depois disso, temos o principal método em que definimos e inicializamos uma string "conteúdo". Além disso, a função invocou a função acima especificada "Remover Puntuation" aqui para a qual a string "conteúdo" é passada. A corda analisada será impressa após a remoção dos símbolos de pontuação.

#incluir
#incluir
#incluir
#incluir
usando std :: cout; usando std :: CIN;
usando std :: endl; usando std :: string;
String RemoverPunction (const String & str)
temp de string (str);
Temp.Apagar (std :: remover_if (temp.BEGIN (), Temp.end (), ispunct), temp.fim());
retornar temp;

int main ()
String Content = "Have | ,! a @@^() g ^^ o!od d@++ ay |?";
cout<< "string content:" << content <String format_content = removepunctionation (content);
cout<< "Parsed string :" <retornar 0;

A string com caracteres de pontuação e a string sem os caracteres de pontuação são exibidos aqui na tela de saída.

Conclusão

Para resumir, abordamos várias maneiras em C ++ para remover caracteres de pontuação de uma string. Você pode usar os quatro métodos discutidos acima para remover todos os caracteres de pontuação de uma string. Esses métodos fornecem uma string de pontuação de filtragem em c++. Ao ler o artigo, você pode descobrir quais dessas abordagens é mais conveniente.