Jump to content
fabioah

Dúvida num exercício

Recommended Posts

fabioah

Pessoal, preciso resolver este exercício, alguem pode me ajudar?

Escreva em programa em C que leia duas strings de tamanhos variáveis através da linha de comando e informe se são ou não iguais considerando que letras maiúsculas e minúsculas equivalentes serão consideradas iguais. O código deverá ser desenvolvido utilizado variáveis do tipo ponteiro para varredura das strings. Não será considerado correto o código que utilizar estrutura de vetores.

Share this post


Link to post
Share on other sites
simone

Ola Fábio,

A melhor solução seria ter ido a aula hoje  :cheesygrin: mas como voce faltou aqui vai uma ajuda.

Você precisa varrer cada string comparando caractere a caractere até o final de pelo menos uma. Se encontrar algum diferente elas são diferentes. Em relação a igualdade entre maiusculas e minusculas voce pode simplesmente converter todas as maiúsculas em minúsculas e fazer a comparação simples.

[]s

Simone (sua professora de programação)

Share this post


Link to post
Share on other sites
pmg

O teu spoiler tem um buffer overflow :D

Se o input for maior que 100 caracteres, os arrays 'string1' e/ou 'string2' não têm espaço suficiente.

Correcção no link do paste ...


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
Tharis

O teu spoiler tem um buffer overflow :D

Se o input for maior que 100 caracteres, os arrays 'string1' e/ou 'string2' não têm espaço suficiente.

Correcção no link do paste ...

Correcção: PODERÁ VIR A TER

E por isso é que está lá o #define... normalmente vêm os limites definidos... logo, é só alterar...

Share this post


Link to post
Share on other sites
pmg

Correcção: PODERÁ VIR A TER

E por isso é que está lá o #define... normalmente vêm os limites definidos... logo, é só alterar...

Correcção da correcção: ESTÁ SUJEITO A BUFFER OVERFLOW

Se o input for maior ou igual ao limite definido (LEN) ocorre um buffer overflow.

Isto independentemente do valor do LEN.

Consegues "controlar" o LEN, mas não consegues "controlar" o utilizador.

Não é possível impedir o utilizar de adormecer sobre uma tecla e fazer enter ao acordar.

Se meteres o LEN a 2,000,000,000 (duvido que a memória chegue), o utilizador tem que ficar a dormir durante bastante tempo para causar o buffer overflow ... mas pode acontecer.

Mais propriamente, o utilizador pode redireccionar o input para um ficheiro e, nesse ficheiro, ter o necessário para o overflow.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
Tharis

Correcção da correcção: ESTÁ SUJEITO A BUFFER OVERFLOW

Se o input for maior ou igual ao limite definido (LEN) ocorre um buffer overflow.

Isto independentemente do valor do LEN.

Consegues "controlar" o LEN, mas não consegues "controlar" o utilizador.

Não é possível impedir o utilizar de adormecer sobre uma tecla e fazer enter ao acordar.

Se meteres o LEN a 2,000,000,000 (duvido que a memória chegue), o utilizador tem que ficar a dormir durante bastante tempo para causar o buffer overflow ... mas pode acontecer.

Mais propriamente, o utilizador pode redireccionar o input para um ficheiro e, nesse ficheiro, ter o necessário para o overflow.

Sim, mas essa não é a questão.

Os limites normalmente são dados e portanto, não precisamos mais do que um limite de chars.

Share this post


Link to post
Share on other sites
Rui Carlos

O problema está no scanf, e não necessariamente no array. Deve-se limitar o número máximo de caracteres a ler no scanf.

Uma alternativa poderá também ser a utilização do %as. Tipo:

char *str;
scanf("%as", &str);

No entanto, isto não é ANSI.

Share this post


Link to post
Share on other sites
pmg

O problema está no scanf, e não necessariamente no array.

É isso mesmo.

Obrigado por apontares para o ponto fulcral do problema. Espero lembrar-me de o fazer no futuro (se houver necessidade e) se eu souber identificar esse ponto fulcral :D


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.