StrLen e StrCat
Publicado por Alexandra Silva (última atualização em 05/12/2012)
[ Hits: 5.912 ]
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");
}
Verificador de senhas: comparando palavras
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (40)
Pfsense inacessivel após um periodo de tempo (2)









