Corrigir string de erro C ++ é indefinido

Corrigir string de erro C ++ é indefinido
Quando executamos um programa, ocasionalmente obtemos resultados estranhos em vez da saída desejada. String indefinida na programação C ++ refere -se quando um programa não compilar, quando executa errado, trava ou produz resultados imprecisos ou quando faz com que o programador pretendido por acaso. Considera -se ter um erro indefinido de string quando o resultado de um programa em execução é incerto.

Neste artigo, vamos resolver a string indefinida de maneiras efetivas suportadas pela linguagem de programação C ++. Compreender exceções indefinidas de string como programador C ++ é essencial para a codificação e o desempenho eficaz do programa, principalmente quando os códigos C ++ são integrados à arquitetura do sistema.

A abordagem para corrigir o erro "String é indefinido" em C++

Se você é novo na linguagem de programação C ++, pode encontrar erros como a string c ++ é indefinida. Em C ++, temos duas maneiras de resolver o erro para uma string indefinida.

  1. namespace std: O namespace std significa que utilizamos o namespace std. "STD" é um acrônimo para o padrão. Como resultado, usamos tudo no espaço para nome "std". Temos que usar o espaço nomes STD com a palavra -chave usada na seção de cabeçalho para aplicá -la a todo o arquivo.
  2. std :: string: A definição de C ++ inclui um método para representar uma série de personagens como um objeto de classe. Esta classe é conhecida como std :: string. Como a variável da string está disponível no espaço de nome da STD, usamos STD :: String sempre que declarar a string no código. A DST é usada com o operador de resolução de escopo na linguagem de programação C ++.

Exemplo 1

Aqui em nosso primeiro exemplo, vamos mostrar como o compilador C ++ lança um erro de string é indefinido. No início do nosso programa, importamos uma biblioteca chamada "iostream". O iostream é um arquivo de cabeçalho em C ++ que especifica uma coleção de funções padrão de entrada e saída. Ele também contém objetos de stream de E/S, como CIN, Cout, Toplog, e assim por diante. O cout é utilizado para exibir a saída "Digite seu nome".

Após esta linha, temos o comando CIN que leva a entrada do usuário da string "namestr". Através do comando cout, a saída e a entrada serão exibidas. O "retorno 0" usado no final da função principal executa a função com sucesso.

#incluir
int main ()

string namestr;
cout << "Enter your name "NameStr;
cout << "Your Name : " << NameStr << endl;
retornar 0;

Você pode observar que a compilação do programa acima dá um erro dessa maneira e também sugere a maneira de declarar string na função principal. Temos um resultado inesperado da execução acima.

Exemplo 2

O programa de ilustração acima lança o erro indefinido. Agora, temos que resolver o erro da string indefinida usando o namespace std na seção de arquivo de cabeçalho. Incluímos o arquivo iostream no programa C++. Abaixo do arquivo iostream, incluímos o arquivo "namespace std" com a palavra -chave "usando". O namespace std nos ajudará a superar o erro indefinido da string. Em seguida, criamos dois namespaces "Integer" e "Double".

No bloco do espaço para nome "inteiro", declaramos duas variáveis ​​"a" e "b" do tipo inteiro e as inicializamos com os valores numéricos. Fizemos o mesmo no bloco de namespace "duplo", mas o tipo usado é o dobro. Observe que definimos variáveis ​​com os mesmos nomes "A" e "B" em ambos os namespaces. Esta é a propriedade do espaço para nome que nos permite declarar variáveis ​​e funções com o mesmo nome.

Em seguida, temos a principal função que está acessando as variáveis ​​do espaço para nome usando o operador de resolução de escopo. Através do comando cout, exibiremos o valor da variável "a" do espaço para nome "inteiro" e o valor da variável "B" do espaço para nome "duplo".

#incluir
usando namespace std;
Namespace Inteiro

int a = 2;
int b = 8;

namespace duplo

duplo a = 1.888;
duplo b = 2.745;

int main ()
usando o número inteiro :: a;
usando duplo :: b;
cout << "a="<< a << endl;
cout << "b="<< b << endl;
cout << "Integer="<< Integer::a << endl;
cout << "Double="<< Double::b << endl;
retornar 0;

Temos um resultado esperado usando o namespace std na seção de arquivo de cabeçalho do programa acima.

Exemplo 3:

Temos outra maneira de nos livrar do erro indefinido da string, que está usando o STD com o operador de resolução de escopo ao definir a variável de string de tipo. No programa abaixo, importamos dois arquivos padrão "iostream" e "string" que compilam o código bem. A função principal é definida e o corpo da função principal possui o comando std cout a princípio com o operador de resolução de escopo. É usado para exibir os dados de saída.

Em seguida, usamos o STD com o operador de resolução de escopo para a variável de string. Isso impedirá o erro da string indefinida no programa. O comando std cin receberá o valor do usuário, e a última linha possui o comando std cout, que é usado para exibir os dados de saída e os valores usados ​​para ter inserido.

#incluir
#incluir
int main ()

std :: cout reg_no;
std :: cout grau;
std :: cout <<"Your Registartion Number is" << Reg_No << "and Your Degree is " << Degree << '\n';
retornar 0;

A abordagem STD :: String impede o erro de que a string está indefinida. O resultado é mostrado na tela do console do Ubuntu.

Exemplo 4

Em vez de usar a DST com resolução de escopo com todas as variáveis, função ou comando; Podemos incluir a DST com o operador de resolução de escopo, definindo -o na seção de cabeçalho com a palavra -chave "usando". Como você pode ver, depois de importar o arquivo padrão no C ++, temos uma instrução STD :: String com a palavra -chave "usando" e também algumas outras instruções de DST necessárias.

Em seguida, temos uma função de string e, no construtor desta função, damos a referência da string "& st". No bloco de função da string, definimos um método "rbegin" para reverter a string e um método "rend" para retornar a extremidade reversa da string especificada. Depois disso, temos a principal função em que a variável da string é definida e inicializada.

#incluir
#incluir
#incluir
usando std :: cout; usando std :: endl;
usando std :: string; usando std :: reverse;
String Revstr (String & st)
string reversa (ST.rBegin (), ST.rend ());
retornar reverso;

int main ()
string mystring = "reverter a string";
cout << MyString << endl;
cout << RevStr(MyString) << endl;
retornar 0;

Podemos impedir o erro indefinido da string dessa maneira também. Não precisamos escrever uma declaração STD com todas as declarações de string no código. Podemos defini -lo na seção de cabeçalho apenas uma vez. Os resultados são mostrados na imagem a seguir.

Conclusão

Agora, chegamos a saber como eliminar o erro indefinido em C em C++. Passamos pela provável causa do erro com o exemplo em execução no artigo. Examinamos o programa que não estava usando o espaço para nome STD e STD :: String e determinamos o quão importante eles são no código C ++. Essas abordagens certamente ajudarão os programadores a evitar o erro indefinido.