StrLen e StrCat
Publicado por Alexandra Silva (última atualização em 05/12/2012)
[ Hits: 5.606 ]
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"); }
EXEMPLO DA ULTILIZAÇÃO DE PONTEIROS
Meu primeiro programa em C (Olá mundo)
Utilizando ESTRUTURA DE DADOS (REGISTRO) - abordagem simples e rápida
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)