StrLen e StrCat
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!
Sugestôes de melhora, críticas etc são bem vindas!
Descrição
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!
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]!='/*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]!='/*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");
}')
{
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]!='/*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");
}')
{
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");
}')
{
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]!='/*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]!='/*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");
}')
{
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]!='/*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");
}')
{
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");
}')
{
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");
}
No mais, parabéns pelo código.
Abraços