StrLen e StrCat
Publicado por Alexandra Silva (última atualização em 05/12/2012)
[ Hits: 5.852 ]
Homepage: alexandrasp.github.io
Um algoritmo simples, implementado em C, que procura fazer o que as funções strlen() e strcat() fazem através da utilização da biblioteca stdlib.h, sem utilização da biblioteca já pronta.
Sugestôes de melhora, críticas etc são bem vindas!
/*Nome:Alexandra da Silva Pereira
Data:29/11/2012*/
#include<stdio.h>
#include<stdlib.h>
#define tam_string 20
char StrLenA(char palavra1[tam_string]); //prototipo de todas as funcoes utilizadas
char StrLenB(char palavra2[tam_string]);
char StrCat(char palavra1[tam_string], char palavra2[tam_string], int i, int j);
int main()
{
int i, j;
char palavra1[tam_string]; //declara os vetores de char, seguido do recebimento dos mesmos
char palavra2[tam_string];
printf("Entre com a primeira palavra: ");
gets(palavra1);
printf("Entre com a segunda palavra: ");
gets(palavra2);
printf("\n+-----------+\n \n");
StrCat(palavra1, palavra2, StrLenB(palavra2), StrLenA(palavra1)); //chama as funcoes para contar o tamanho e concaternar "strings"
return 0;
}
char StrLenA(char palavra1[tam_string])
/*funcao que recebe primeira palavra , conta o tamanho
efetivo de caracteres dessa palavra, mostra esse tamanho
e ainda o retorna para ser parametro de StrCat()*/
{
int i=0;
while(palavra1[i]!='{FONTE}')
{
i++;
}
printf("O tamanho da primeira string é: %d\n\n", i);
printf("\n+-----------+\n\n");
return i;
}
char StrLenB(char palavra2[tam_string])
/*funcao que recebe segunda palavra , conta o tamanho
efetivo de caracteres dessa palavra, mostra esse tamanho
e ainda o retorna para ser parametro de StrCat()*/
{
int i=0;
while(palavra2[i]!='{FONTE}')
{
i++;
}
printf("O tamanho da segunda string é: %d\n", i);
printf("\n+-----------+\n\n");
return i;
}
char StrCat(char palavra1[tam_string], char palavra2[tam_string], int i, int j)
{//funcao para concaternar
char *palavra;
int count=0, k;
count=i+j;
palavra = (char*)malloc((count+1)*sizeof(char)); //aloca na memoria espaco para concaternar as duas "strings" recebidas
//a sequencia de 2 for(s) trata de pegar as strings anteriores e realocar, o ultimo for mostra a "nova string"
for(k=j; k>=0; k--)
{
palavra[k]=palavra1[k];
}
for(k=j; k<=count; k++)
{
palavra[k]=palavra2[k-j];
}
printf("Nova string: ");
for(k=0; k<=count; k++)
{
printf("%c", palavra[k]);
}
printf("\n\n+-----------+\n\n");
}
EXEMPLO DA ULTILIZAÇÃO DE PONTEIROS
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
PERFIL CRIADO NO SAMBA AD DC NÃO LOGA NO WINDOWS 10 E 11 (2)
Estou tentando ser legalista, mas tá complicado! (0)
É normal não gostar de KDE? (17)
PERFIL CRIADO NO SAMBA AD DC NÃO LOGA NO WINDOWS 10 E 11 (1)









