StrLen e StrCat
Publicado por Alexandra Silva (última atualização em 05/12/2012)
[ Hits: 5.681 ]
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"); }
Utilização de Ponteiros em C (2)
Pra quem contribui com artigos e dicas (1)
Arch Linux - Guia para Iniciantes (5)
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
O Que Fazer Após Instalar Ubuntu 25.04
O Que Fazer Após Instalar Fedora 42
Debian 12 -- Errata - Correções de segurança
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Copiar Layout do Teclado para aplicar em outra Distribuição (2)
Monitor fora de escala ao bootar sistema (10)
Pra quem contribui com artigos e dicas (1)
Alguém poderia me ajudar a escolher peças pra montar um desktop? (19)