StrLen e StrCat
Publicado por Alexandra Silva (última atualização em 05/12/2012)
[ Hits: 5.720 ]
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"); }
Pilha, algoritmos push, pop e imprimir explicados
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Firefox não abre em usuário não administradores (2)
Ubuntu com problemas no áudio (1)
Sempre que vou baixar algum pacote acontece o erro dpkg (8)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (8)