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 sequência 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 usada para calcular o tamanho de seu operando. Ele retorna o tamanho de uma variável específica. Essa função pode ser aplicada a qualquer tipo de dados, contendo tipos primitivos como inteiros e tipos de ponteiro, tipos de ponto flutuante, estrutura ou união. A saída do programa contendo sizeof () pode ser diferente no sistema de 32 bits e no sistema de 64 bits.
PRINCIPAIS DIFERENÇAS:
- 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 preocupa 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 uma 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#include int main(){char strng[] = "January";printf("Length of given string is: %lu\n", strlen(strng));}
Resultado:
Length of given string is: 7
Sintaxe de sizeof ()
Sintaxe 1)
sizeof (tipo): Tipo = tipo referenciado
Exemplo de sizeof (tipo):
No código abaixo, & type fornece o endereço da variável (duplo x). É incrementado com 1, que fornece o endereço onde você pode armazenar a próxima variável do tipo x.
Moldar 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#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)int main(){double x;printf("%ld", my_sizeof(x));getchar();return 0;}
resultado:
8
Sintaxe 2)
sizeof (nome-da-variável): nome-da-variável = nome da variável que você gostaria de 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 da variável):
#includeint main(){printf("sizeof(char) = %d\n\n", sizeof(char));return 0;}
Resultado:
sizeof(char) = 1
Sintaxe 3)
sizeof (expressão): Expressão = 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.
#includeint 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;}
Resultado:
Size of variable p : 1Size of an expression : 8Size 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, 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 uma matriz 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 os valores nulos. | Ele retorna o tamanho de um operando, não o comprimento da string (incluindo valores nulos). |
Ele aloca memória em tempo de execução e procura o valor nulo da variável. | Sizeof () não se preocupa com o valor da variável. |
A função Strlen () funciona apenas com cadeias 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 () é int sem sinal. |
Há apenas uma sintaxe de strlen () que é int strlen (const char * str); | Existem três sintaxes de sizeof () 1) sizeof (tipo), 2) sizeof (nome da variável) e 3) sizeof (expressão): |