Diferença entre caracteres matriz e seqüência

Autor: Laura McKinney
Data De Criação: 1 Abril 2021
Data De Atualização: 6 Poderia 2024
Anonim
Diferença entre caracteres matriz e seqüência - Tecnologia
Diferença entre caracteres matriz e seqüência - Tecnologia

Contente


O C ++ suporta ambos, Matriz e sequência de caracteres, como o C ++ possui benefícios consideráveis ​​no uso dos dois. Porém, a incapacidade de operar na matriz de caracteres aumenta o desenvolvimento da cadeia de classes. Tanto uma matriz quanto uma sequência de caracteres contêm a sequência de caracteres. Mas a diferença fundamental entre a matriz de caracteres e a cadeia de caracteres é que a "matriz de caracteres" não pode ser operada com operadores padrão, enquanto os objetos da "cadeia" podem ser operados com operadores padrão. Vamos estudar as outras diferenças entre uma matriz de caracteres e uma sequência.

  1. Gráfico de comparação
  2. Definição
  3. Principais diferenças
  4. Conclusão

Gráfico de comparação

Base para ComparaçãoMatriz de caracteresCorda
BasicA matriz de caracteres é uma coleção de variáveis, do tipo de dados de caracteres.String é classe e variáveis ​​de string são o objeto da classe "string".
Sintaxechar array_name;string string_name;
IndexaçãoUm caractere individual em uma matriz de caracteres pode ser acessado por seu índice na matriz.Na string, o caractere específico pode ser acessado pela função "string_name.charAt (index)".
Tipo de dadosUma matriz de caracteres não define um tipo de dados.Uma string define um tipo de dados em C ++.
OperadoresOs operadores em C ++ não podem ser aplicados na matriz de caracteres.Você pode aplicar o operador C ++ padrão na seqüência de caracteres.
fronteiraOs limites da matriz são facilmente ultrapassados.Os limites não serão ultrapassados.
AcessoAcesso rápido.Acesso lento.


Definição da Matriz de Caracteres


Uma matriz de caracteres é uma coleção das variáveis ​​do tipo de dados "char"; pode ser uma matriz unidimensional ou uma matriz bidimensional. Também é chamado de "string terminada nula". Uma matriz de caracteres é uma sequência de caracteres armazenados em endereços de memória consecutivos. Em uma matriz de caracteres, um caractere específico pode ser acessado por seu índice. Um "caractere nulo" termina a matriz de caracteres ".

Vamos dar um exemplo de matriz de caracteres: -

nome do char = {A, j, a, y, 0}; ou nome do char = "Ajay";

Aqui, "char" é um tipo de dado de caractere, "name" é um nome de variável da matriz de caracteres. Eu havia mostrado duas maneiras de inicializar a matriz de caracteres. No primeiro método, o nulo é mencionado explicitamente e no segundo método, o compilador insere automaticamente o nulo.


O final da string é sempre um caractere nulo; é o caractere final da matriz de caracteres. Uma matriz de caracteres não é um tipo de dados interno; criamos uma matriz de caracteres declarando-a. Você não pode aplicar operadores padrão em uma matriz de caracteres. Para operar na matriz de caracteres, existem algumas funções internas, como, (strlen (), strlwr (), strupr (), strcat ()). Como os operadores padrão não podem ser aplicados a uma matriz de caracteres, eles não podem participar de nenhuma expressão.

O ponteiro de caractere para uma matriz de caracteres também pode ser criado.

Vamos entender com um exemplo.

char s1 = "Olá"; char s2 = "senhor"; s1 = s1 + s2; // operadores de erro não podem ser aplicados s2 = s1; // erro Ponteiro de caractere char * s = "Morning"; char * p; p = s; // executa

No exemplo acima, tínhamos declarado dois array de caracteres s1, s2 e dois ponteiros de caracteres se ep. A matriz de caracteres s1 e s2 é inicializada, podemos ver que nem o operador de adição (+) nem o operador de atribuição funcionam na matriz de caracteres. Mas um ponteiro de caractere pode ser atribuído a outro ponteiro de caractere.

Lembre-se de que, uma vez que a matriz de caracteres seja inicializada, ela não poderá ser inicializada novamente para outro conjunto de caracteres. O acesso a uma matriz de caracteres ou a uma sequência terminada nula é rápido em comparação com a sequência em C ++.

Definição de String

Uma sequência não é um tipo de dados interno do C ++. É um objeto de classe do tipo "string". Como no C ++, criar uma classe é como criar um "tipo". A classe "string" faz parte da biblioteca C ++. Ele contém o conjunto de caracteres ou matriz de caracteres como um todo. Há três razões por trás do desenvolvimento de uma classe de string padrão.

  • Primeiro é "consistência", as matrizes de caracteres não são tipos de dados por si só.
  • Segundo é "conveniência", você não pode usar operadores padrão em uma matriz de caracteres.
  • Terceiro é "segurança", os limites da matriz são facilmente ultrapassados.

Vamos entender as strings com um exemplo.

string s1; s1 = "Olá"; string s2 ("Bom dia"); string s3 = "Hennery"; string s4;

Na declaração acima, quatro variáveis ​​ou objetos de string (s1, s2, s3, s4) são declarados. Na declaração acima, mostrei três maneiras de inicializar a string. A cadeia s1 é declarada e, em seguida, inicializada separadamente. A sequência s2 é inicializada pelo construtor da classe "String". A cadeia de caracteres s3 é inicializada no momento de sua declaração, como fazem os tipos de dados normais. Podemos aplicar o operador padrão às variáveis ​​de string.

s4 = s1; // atribuindo um objeto de string a outro s4 = s1 + s2; // adicionando duas strings e armazenando o resultado na terceira string if (s3> s2) // comparando duas strings strings s5 (s1); criando um novo objeto de string usando o objeto de string existente

No código acima, vários operadores são aplicados em uma sequência e várias operações são executadas. A primeira instrução copia um objeto de sequência para outro objeto de sequência. Na segunda instrução, duas cadeias são concatenadas e armazenadas em uma terceira cadeia. Na terceira instrução, duas cadeias são comparadas. Na quarta instrução, um novo objeto de string é criado usando o objeto de string já existente.

O acesso à sequência é lento em comparação com uma matriz de caracteres ou sequência terminada nula.

Principais diferenças entre a matriz de caracteres e a seqüência de caracteres

  1. Uma matriz de caracteres é uma coleção de variáveis ​​que são do tipo de dados de caracteres. String é uma classe que é instanciada para declarar strings.
  2. Usando o valor do índice, você pode acessar um caractere de uma matriz de caracteres. Por outro lado, se você deseja acessar um caractere específico em uma sequência, é possível acessá-lo pela função string_name.charAt (index).
  3. Como uma matriz não é um tipo de dados, da mesma forma que um caractere também não é um tipo de dados. Por outro lado, String sendo uma classe atua como um tipo de referência, portanto, pode-se dizer que String é um tipo de dados.
  4. Você não pode aplicar nenhum operador em uma matriz de caracteres, ao passo que pode aplicar operadores na String.
  5. Sendo uma matriz de caracteres de matriz, possui um comprimento fixo e seus limites podem ser facilmente ultrapassados. Onde String não possui limites.
  6. Os elementos de matriz são armazenados em um local de memória contígua, portanto, podem ser acessados ​​mais rapidamente que a variável de cadeia.

Conclusão:

A incapacidade de operar na matriz de caracteres aumentou o desenvolvimento da classe de string padrão.