StrLen e StrCat
Publicado por Alexandra Silva (última atualização em 05/12/2012)
[ Hits: 5.872 ]
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");
}
Abrindo e fechando a bandeja do cd.
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
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Trazendo de volta o Serviços em Segundo Plano no Plasma6









