Jump to content

Problema na obtenção de strings!!!


Dar3_D3vil
 Share

Recommended Posts

Eu tou a fazer o trabalho final de programação e tou com um problema...

A obter strings, se usar

scanf(" %s",comando);

akilo ignorame os espaços e se usar

fgets(comando,DIMAX,stdin);

(o DIMAX ta definido como 100)

reconhece td mas depois n executa umas funçoes enkanto k com o scanf execute mas n le os espaços....

E o gets o meu stor diz k n se deve usar pk tem mtos problemas.

Alguem tem uma alternativa???

Link to comment
Share on other sites

Epah o prob é k o scanf ignora os espaços e o espaço n tem nd a ver com isso... ate testei com e sem espaço pa ter a certeza.

Se alguem souber de uma alternativa ou soluçao... avise

Link to comment
Share on other sites

N é duvida, lol, é certeza.

Teoricamente devia ler o espaço mas ignora-o,

e fiz scanf de uma string pa um vector de dimensao 100..

testei com menos de 10 caracteres(incluindo espaços).

depois fiz o printf da string, e akilo imprimiu sem espaços mas sim numa nova linha, tipo

se escrever help help aparece:

help

help

mas se escrever help help aparece:

help

help na mm.

:S

Mas o Bruno ja me ajudou a resolver isto fazendo assim:

scanf("%[^\n]s",comando);

so k agr akilo dame outro prob.

no printf o outoput é o k escrevi mas bues vezes ate eu fazer ctlr+c (serve pa parar a execuçao)

Link to comment
Share on other sites

não acaba o programa enquanto nao carregares em ctrl C? é porque esta em ciclo infinito.

em relação à cena da string eu acho que a melhor forma de apanhar texto é com o getchar, assim tens mais control sobre aquilo que o utilizador escreve, dá é mais trabalho.

Link to comment
Share on other sites

hehehe ele pára pk (e estupidamente) o caracter que corresponde ao espaço eh igual ao de final de string ou seja '\0' e se bem me lembro (ja nao pego em C faz tempo, ando com outras linguagens agr) pra ultrapassar esse problema tive que passar a string para uma cadeia de chars (que eh efectivamente o que uma string e') e dp verificar um a um se era o '\0' ja n me recordo bem, mas penso que foi assim

boa sorte com o trabalho! =)ß

Software is like sex... it's better when it's free

in the old days

P@P "C" && "Linux" Moderator

Link to comment
Share on other sites

[PT]Devilishly
... passar a string para uma cadeia de chars (que eh efectivamente o que uma string e') e dp verificar um a um se era o '\0' ...
Esse é o algoritmo usado no strlen() para determinar o tamanho da string  😄
Link to comment
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
 Share

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