strings

1. strings

Carlos Silva Jr
Slack_kf

(usa Slackware)

Enviado em 21/06/2006 - 17:15h

Olá Pessoal,
Estou com um problema verificar string.
#include <stdio.h>
int main()
{
char string[10];
printf("Digite nome: ");
fgets ("string,10,stdin);
if ( string==slack)
{
printf("Resposta OK");
}
}

Alguem poderia me dizer o que devo fazer pra que funcione,se possivel poste o programa acima no forum ,do jeito que ele deve ficar.
Já procurei me falaram do camando strcmp mas não consegui fazer funcionar.
vlw.


  


2. Resposta:

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 21/06/2006 - 19:43h

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

#define NOME "Viva o Linux"

int main(void){
char str[20];
printf("Nome: "); scanf("%[^\n]", str);
if(strcmp(str, NOME) == 0) printf("Correto\n");
else printf("Tente novamente...\n");
return 0;
}
----------------

Qualquer coisa: enzo@veloxmail.com.br



3. Re: strings

Carlos Silva Jr
Slack_kf

(usa Slackware)

Enviado em 21/06/2006 - 20:42h

Muito Obrigado me ajudou bastante..
Mas voce ou alguem pode explicar,
algumas linhas desse codigo
não gosto de fazer as coisas sem entender.
Eu não entendi as as bibliotecas e essa 3 linhas

#define LOGIN "Viva o Linux"

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

if(strcmp(string, LOGIN) == 0)

muito obrigado.


4. Re: strings

Ricardo Rodrigues Lucca
jllucca

(usa Gentoo)

Enviado em 21/06/2006 - 21:08h

Oi,

(1) #define LOGIN "Viva o Linux"
(2) scanf("%[^\n]s", string);
(3) if(strcmp(string, LOGIN) == 0)

Sobre as linhas que voce ficou em dúvida é o seguinte:

- A (1) define que o compilador toda vez que ver escrito LOGIN ele deve entender "Viva o Linux";
- A (2) é uma leitura do teclado(explico mais);
- A (3) é um teste para ver se a linha escrita(lida para string) é igual à definida em LOGIN(no caso, "Viva o Linux");

Apenas para não ficar dúvida no scanf quando ele lê "%[^\n]s" temos que ele deve ler uma string("%s") que só aceita o que esta entre conchentes. No caso, o "^\n" diz que não devemos aceitar(^) o "\n". Do mesmo modo podemos só aceitar alguns caracteres por exemplo abcd então temos "%[abcd]s".

[]'s



5. Re: strings

Ricardo Rodrigues Lucca
jllucca

(usa Gentoo)

Enviado em 21/06/2006 - 21:12h

Oi denovo,

eu quando li achei que poderia estranhar o jeito que falei. O que chamo de "aceitar" é que scanf ira retornar sem quebrar a string. No exemplo que dei se digitarmos "abe" e chamarmos o scanf daquela forma temos como resultado "ab".

[]'s


6. Re: strings

Carlos Silva Jr
Slack_kf

(usa Slackware)

Enviado em 21/06/2006 - 21:26h

Otimo.
So faltou uma coisa.
nessa linha ...
scanf("%[^\n]", string);

Não era para ser assim??
scanf("%[^\n]", &string);

vlw obrigado a todos que ajudaram.


7. Re: strings

Tiago Barcellos Peczenyj
pacman

(usa Ubuntu)

Enviado em 21/06/2006 - 22:36h

veja só, se vc lida com matrizes, o nome da matriz sem [x] ja é um ponteiro

&string[0] existe - ponteiro pro caracter 0
string é um ponteiro pra matriz inteira.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts