Jump to content
costricardo

Strings

Recommended Posts

costricardo

Boas pessoal,

Tava a tentar fazer um programar que colocasse a string origem no inicio da string destino, tal como:

orig[]="autonoma";

dest[]="universidade"

no final ficar autonomauniversidade.

O meu codigo é o seguinte:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


char *geek(char *dest, char * orig)
{
     int j;


    for(j=strlen(orig);j>=0;j--)
    {
        dest[j] = orig[j];

    }

    return dest;
}

char *spider(char * dest, char * orig)
{
    geek(dest+strlen(orig), dest);
    memcpy(dest, orig, strlen(orig));
    
    return dest;
    
}


int main()
{
   
    char orig[30], dest[30];
    

    scanf("%s", orig);
    scanf("%s", dest);

    geek(dest,orig);
    spider(dest,orig);

  



    printf("%s",dest);



    return 0;
}

ALguém me ajuda? :cheesygrin:


I´m a Geek and you?www.tecnologias.in

Share this post


Link to post
Share on other sites
KiNgPiTo

Não estás a exagerar?

Simplesmente:

#include <stdio.h>
#include <string.h>

int main(){

char orig[]="autonoma";
char dest[]="universidade";

printf("%s",(strcat(orig,dest)));

return 0;
}

Share this post


Link to post
Share on other sites
aladino77

Não estás a exagerar?

Simplesmente:

#include <stdio.h>
#include <string.h>

int main(){

char orig[]="autonoma";
char dest[]="universidade";

printf("%s",(strcat(orig,dest)));

return 0;
}

Por causa de strcat como este é que os virus não param por aí. Buffer Overflow, não diz nada?

Share this post


Link to post
Share on other sites
bubulindo

O tópico dos vírus e buffer overflows está mais que batido nos posts do fórum... se alguém já andou a pesquisar pelo fórum certamente que se deparou com esse aspecto.

Mas pronto, para evitar isso:

http://www.cplusplus.com/reference/clibrary/cstring/strncat/

Cá fica o strncat(). Creio que o exemplo dado foi apenas para mostrar que existem maneiras mais simples.


include <ai se te avio>

Mãe () {

}

Share this post


Link to post
Share on other sites
Baderous

Para além disso a string orig não tem espaço para concatenar outra string, de tal modo que a execução disso lança-me um SIGABRT.

#include <stdio.h>
#include <string.h>

int main(void) {
        char orig[] = "Autonoma";
        char dest[] = "Universidade";
        if (strlen(dest)+1 > sizeof(orig) - strlen(orig))
                printf("Sem espaço\n");
        else
                strncat(orig,dest,sizeof(orig) - strlen(orig) - 1);
        return 0;
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.