Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Dominando ponteiros de caracteres e uso de funções em C

O que é um ponteiro de caractere em C?


Um ponteiro de caractere armazena o endereço de um tipo de caractere ou endereço do primeiro caractere de uma matriz de caracteres (string). Os ponteiros de caracteres são muito úteis quando você está trabalhando para manipular as strings.

Não existe tipo de dados string em C. Um array do tipo "char" é considerado uma string. Conseqüentemente, um ponteiro de uma matriz do tipo char representa uma string. Este ponteiro char pode então ser passado como um argumento para uma função para processar a string.

Declarando um ponteiro de caractere


Um ponteiro de caractere aponta para um caractere ou matriz de caracteres. Assim, para declarar um ponteiro de caractere, use a seguinte sintaxe:
08 

Inicializando um ponteiro de caractere


Após declarar um ponteiro de caractere, você precisa inicializá-lo com o endereço de uma variável de caractere. Se houver uma matriz de caracteres, você pode simplesmente inicializar o ponteiro de caracteres fornecendo o nome da matriz de caracteres ou o endereço dos primeiros elementos dela.

Ponteiro de caractere


A seguir está a sintaxe para inicializar um ponteiro de caractere de um tipo de caractere:
17 

Ponteiro de caractere da matriz de caracteres


A seguir está a sintaxe para inicializar um ponteiro de caractere de uma matriz de caracteres (string):
25 

Exemplo de ponteiro de caractere


No exemplo a seguir, temos duas variáveis ​​caractere e matriz de caracteres. We are taking two pointer variables to store the addresses of the character and character array, and then printing the values of the variables using the character pointers.
39 

Saída


Execute o código e verifique sua saída -
47 

Compreendendo o ponteiro de caractere


Uma string é declarada como um array da seguinte maneira -
55 
A string é uma matriz de caracteres terminada em NULL. O último elemento da matriz acima é um caractere NULL (\0).

Declare um ponteiro do tipo char e atribua a ele o endereço do caractere na posição 0 -
68 
Lembre-se de que o nome do array em si é o endereço do 0º elemento.
70 
Uma string pode ser declarada usando um ponteiro em vez de uma variável de array (sem colchetes).
87 
Isso faz com que a string seja armazenada na memória e seu endereço armazenado em ptr. Podemos percorrer a string incrementando o ptr.
97 

Acessando matriz de caracteres


Se você imprimir uma matriz de caracteres usando o especificador de formato %s, poderá fazê-lo usando o nome do ponteiro de caractere. Mas se você quiser acessar cada caractere da matriz de caracteres, deverá usar um asterisco (*) antes do nome do ponteiro do caractere e depois incrementá-lo.

Exemplo


Aqui está o código completo do programa -
104 

Saída


Execute o código e verifique sua saída -
111 

Exemplo


Alternativamente, passe ptr para printf() com formato %s para imprimir a string.
127 

Saída


Ao executar este código, você obterá a mesma saída -
131 

Funções de ponteiro de caractere


Os arquivos de cabeçalho "string.h" definem uma série de funções de biblioteca que executam o processamento de strings, como encontrar o comprimento de uma string, copiar uma string e comparar duas strings. Essas funções usam argumentos de ponteiro char.

A função strlen()


A função strlen() retorna o comprimento, ou seja, o número de caracteres em uma string. O protótipo da função strlen() é o seguinte -
143 

Exemplo 1


O código a seguir mostra como você pode imprimir o comprimento de uma string -
156 
Quando você executa este código, ele produzirá a seguinte saída -
163 

Exemplo 2


Efetivamente, a função strlen() calcula o comprimento da string de acordo com a função definida pelo usuário str_len() conforme mostrado abaixo -
176 
Quando você executa este código, ele produzirá a seguinte saída -
183 

A função strcpy()


O operador de atribuição ( =) não é usado para atribuir um valor de string a uma variável de string, ou seja, um ponteiro char. Em vez disso, precisamos usar a função strcpy() com o seguinte protótipo -
194 

Exemplo 1


O exemplo a seguir mostra como você pode usar a função strcpy() -
209 
A função strcpy() retorna o ponteiro para a string de destino ptr1.
217 

Exemplo 2


Internamente, a função strcpy() implementa a seguinte lógica na função str_cpy() definida pelo usuário -
226 
Quando você executa o código dele, ele produzirá a seguinte saída -
235 
A função copia cada caractere da string de origem para o destino até que o caractere NULL "\0" seja alcançado. Após o loop, ele adiciona um caractere "\0" no final do array de destino.

A função strcmp()


Os operadores de comparação usuais (<,>, <=,>=, ==e !=) não podem ser usados para comparar duas strings. Em vez disso, precisamos usar a função strcmp() do arquivo de cabeçalho “string.h”. O protótipo desta função é o seguinte -
249 
A função strcmp() tem três valores de retorno possíveis -
  • Quando ambas as strings são idênticas, ele retorna "0".
  • Quando o primeiro caractere não correspondente em str1 tem um valor ASCII maior que o caractere correspondente em str2, a função retorna um número inteiro positivo. Isso implica que str1 aparece depois de str2 em ordem alfabética, como em um dicionário.
  • Quando o primeiro caractere não correspondente em str1 tem um valor ASCII menor que o caractere correspondente em str2, a função retorna um número inteiro negativo. Isso implica que str1 aparece antes de str2 em ordem alfabética, como em um dicionário.

Exemplo 1


O exemplo a seguir demonstra como você pode usar a função strcmp() em um programa C -
258 
Execute o código e verifique sua saída -
262 
Mude s1 para BACK e execute o código novamente. Agora, você obterá a seguinte saída -
277 

Exemplo 2


Você pode obter um resultado semelhante usando a função definida pelo usuário str_cmp(), conforme mostrado no código a seguir -
281 
Quando você executa este código, ele produzirá a seguinte saída -
292 
A função str_cmp() compara os caracteres no mesmo índice em uma string até que os caracteres em qualquer uma das strings se esgotem ou os caracteres sejam iguais.

No momento de detectar caracteres desiguais no mesmo índice, é retornada a diferença em seus valores ASCII. Ele retorna "0" quando o loop é encerrado.

Linguagem C

  1. Construtor C#
  2. Como baixar e instalar o Visual Studio para C# no Windows
  3. C# if, if...else, if...else if e aninhado if declaração
  4. C Instrução Condicional:IF, IF Else e Aninhado IF Else com Exemplo
  5. Espaços de nomes em C++
  6. Modelos de classe C++
  7. C - Configuração do Ambiente
  8. Gerenciamento de memória C++:novo e excluir
  9. Fundição de tipo em C:conversão de tipo, implícito, explícito com exemplo
  10. C# - Conversão de tipo