Diferença entre strlen() e sizeof() para string em C
O que é strlen()
strlen() é uma função para encontrar o comprimento de uma string. Conta o total de caracteres que são apresentados em uma string, eliminando o caractere nulo. O número total de caracteres na string inclui alfabetos, caracteres especiais e números, com espaços em branco.
Nesta diferença entre strlen() e sizeof() para string no tutorial C, você aprenderá:
- O que é strlen()
- O que é sizeof()
- Sintaxe de strlen()
- Sintaxe de sizeof()
- Diferença entre strlen() e sizeof()
O que é sizeof()
O sizeof() é uma função que é usada para calcular o tamanho de seu operando. Ele retorna o tamanho de determinada variável. Esta função pode ser aplicada a qualquer tipo de dados, contendo tipos primitivos como tipos inteiros e de ponteiro, tipos de ponto flutuante, estrutura ou união. A saída do programa que contém sizeof() pode ser diferente no sistema de 32 bits e no sistema de 64 bits.
DIFERENÇAS PRINCIPAIS:
- O método Strlen é usado para encontrar o comprimento de uma matriz, enquanto o método sizeof() é usado para encontrar o tamanho real dos dados.
- Strlen() conta o número de caracteres em uma string enquanto sizeof() retorna o tamanho de um operando.
- Strlen() procura o valor nulo da variável, mas sizeof() não se importa com o valor da variável.
- O valor de retorno em strlen() é long int, por outro lado, o valor de retorno em sizeof() é unsigned int.
Sintaxe de strlen()
strcount = strlen(my_string);
Aqui, my_string é uma variável de matriz de caracteres.
Exemplo de strlen()
No programa C abaixo, declaramos a variável string do tipo char. A variável strng é passada como um argumento da função strlen() para encontrar o comprimento da string.
#include<stdio.h> #include<string.h> int main() { char strng[] = "January"; printf("Length of given string is: %lu\n", strlen(strng)); }
Saída:
Length of given string is: 7
Sintaxe de sizeof()
Sintaxe 1)
sizeof(tipo): Tipo =tipo referenciado
Exemplo de sizeof(type):
No código abaixo, &type fornece o endereço da variável (double x). Ele é incrementado com 1 que fornece o endereço onde você pode armazenar a próxima variável do tipo x.
Typecasting x em char* e tirar a diferença permitirá que você saiba o número total de variáveis do tipo char armazenadas na memória. Usamos getchar() para ler o caractere.
#include<stdio.h> #define my_sizeof(type) (char *)(&type+1)-(char*)(&type) int main() { double x; printf("%ld", my_sizeof(x)); getchar(); return 0; }
saída:
8
Sintaxe 2)
sizeof(nome-variável): Variable-name=nome da variável que você deseja determinar o tamanho.
No programa C abaixo, estamos imprimindo o tipo de dados size char. A instrução Printf contém a função sizeof com o argumento char.
Exemplo de sizeof(nome-variável):
#include<stdio.h> int main() { printf("sizeof(char) = %d\n\n", sizeof(char)); return 0; }
Saída:
sizeof(char) = 1
Sintaxe 3)
sizeof(expressão): Expression=Expressão que você deve avaliar.
Exemplo de sizeof(expressão):
No programa abaixo, primeiro calculamos e imprimimos o tamanho da variável. Depois disso, estamos avaliando a expressão, armazenando-a na variável a e exibindo o resultado na instrução printf.
#include<stdio.h> int main() { char p = 'S'; double q = 4.65; printf("Size of variable p : %d\n",sizeof(p)); printf("Size of an expression : %d\n",sizeof(p+q)); int a = (int)(p+q); printf("Size of explicitly converted expression : %d\n",sizeof(a)); return 0; }
Saída:
Size of variable p : 1 Size of an expression : 8 Size of explicitly converted expression : 4
Diferença entre strlen() e sizeof()
Aqui estão as diferenças importantes entre strlen() e sizeof():
Strlen() Tamanho de() Strlen() é uma função predefinida, que é definida em um arquivo de cabeçalho conhecido como string.h.Sizeof() é um operador unário ou expressão de tempo de compilação que calcula a quantidade de memória ocupada por uma variável. Este método é usado para encontrar o comprimento de um array de string ou caractere.Este método é usado para encontrar o tamanho real dos dados (alocados) em bytes.Ele conta o número de caracteres em uma string eliminando valores nulos.Ele retorna o tamanho de um operando, não o comprimento da string (incluindo valores nulos). Ela aloca memória no tempo de execução e procura o valor nulo da variável. Sizeof() não se importa com o valor da variável. A função Strlen() funciona apenas com strings de caracteres A função Sizeof() retorna a quantidade de memória alocada em bytes. O valor de retorno em strlen() é longo int. O valor de retorno em sizeof() é unsigned int.Existe apenas uma sintaxe de strlen() que é int strlen(const char *str);Existem três sintaxes de sizeof() 1) sizeof(type), 2) sizeof(variable-name) e 3) sizeof(expres ção):
Linguagem C
- Diferença entre amianto e fibra de vidro
- Diferença entre Estrutura e União
- C# vs. C++:Qual é a diferença entre C# e C++?
- Diferença entre C e C++
- Diferença entre C e Java
- Python vs JavaScript:Diferença entre JavaScript e Python
- Python Vs Ruby:Diferença entre Ruby e Python
- A diferença entre motores CC e CA
- Diferença entre brasagem e solda
- Diferença entre motores 2 tempos e 4 tempos