StrLen e StrCat
Publicado por Alexandra Silva (última atualização em 05/12/2012)
[ Hits: 5.435 ]
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"); }
Comparações sem usar IF - ELSE em C
Função simples sendo chamada dentro da main
Parte 7 - Sessão de estudo sobre VETORES
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Desenvolvimento de um driver (10)
Não esta salvando as configurações de usuário. (3)
Quais Shell Scripts vocês usam? (5)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba