Manwë Súlimo Postado Setembro 23, 2004 Denunciar Share Postado Setembro 23, 2004 Pessoal, talvez seja uma pergunta bem estúpida, mas....como se declara uma string no C???até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lpc Postado Setembro 23, 2004 Denunciar Share Postado Setembro 23, 2004 Se você não conhece C não é estúpida. Em C, uma string pode ser declarada para um array de caracteres ou para um ponteiro (char *). ex: char string[] = "string" ou char *stringPtr = "string". Se sobraram dúvida poste aqui. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Setembro 23, 2004 Denunciar Share Postado Setembro 23, 2004 Lembrando que você também pode declarar sem inicializar a váriavel :char strString[100]; Neste caso a string pode ter um tamanho total de 100 caracteres. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Wicker Man Postado Setembro 24, 2004 Denunciar Share Postado Setembro 24, 2004 Há um outro detalhe: o último caractere de uma string sempre é o caractere "\0". Exemplificando, considere a string "string" na declaração que segue:char string[ 6 ]; Você não pode inicializá-la com "abcdef" pois o último caractere da string tem que ser "\0". O máximo que você pode fazer é "abcde" e assim o esquema ficaria: char string[ 6 ] = { 'a', 'b', 'c', 'd', 'e', '\0' }; /* é equivalente a: */ char string[ 6 ] = "abcde";Até mais! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manwë Súlimo Postado Setembro 24, 2004 Autor Denunciar Share Postado Setembro 24, 2004 Eu tentei fazer assim como vocês disseram:char op[20];mas no meu teste ele não deu certo, tipo eu pusif op=="listar"e ele não dava certo, como eu uso num if esse caso?????a palavra tem que ter o tamanho do array?? porque eu não sei que palavra o usuario vai digitar, podem ser varias e de varios tamanhos... como eu faço isso?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Setembro 24, 2004 Denunciar Share Postado Setembro 24, 2004 Tem que ser algo assim: char op[20]; strcpy(op,"listar"); if (!strcmp(op,"listar")) faz isso...; else faz aquilo...; Não testei , mas deve ser isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodfraga Postado Setembro 26, 2004 Denunciar Share Postado Setembro 26, 2004 É eu estava fazendo um programa assim hoje Ele não pode fazer a comparação entre strings com o "=="... Então tem que usar a strcmp(comparador de strings). O curioso, é que ela retorna 0 se forem iguais e 1 se forem diferentes. Porque eu pensei que fosse:Se for igual, então strcmp retorna 1(true ahuahau), mas testando descobri que retorna 0.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Setembro 27, 2004 Denunciar Share Postado Setembro 27, 2004 É que strcmp() retorna -1 se a primeira for menor que a segunda, 0 se forem iguais e 1 se a primeira for maior que a segunda.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodfraga Postado Setembro 27, 2004 Denunciar Share Postado Setembro 27, 2004 Ah, obrigado... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manwë Súlimo Postado Setembro 27, 2004 Autor Denunciar Share Postado Setembro 27, 2004 então isso aqui:if (!strcmp(op,"listar")) faz isso...;elsefaz aquilo...;seria comoif (strcmp(op,"listar")==0) faz isso...;elsefaz aquilo...;é isso??por que eu não to conseguindo usar..... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Setembro 27, 2004 Denunciar Share Postado Setembro 27, 2004 na verdadeif (strcmp(op,"listar")==0) é igual a if (!strcmp(op,"listar")) o (!) significa igual a zero. Qual o erro que ta dando?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manwë Súlimo Postado Setembro 27, 2004 Autor Denunciar Share Postado Setembro 27, 2004 Bom, erro não está dando, mas não acontece o que eu quero que aconteçaeu to começando agora com o C (deu p/ perceber né?) bom, ai eu quero testar alguns comando, e fiz esse programinha aqui: #include <stdio.h> #include <stdlib.h> void main(void) { char op[20]; scanf("%c",&op); while (strcmp(op,"sair")!=0) { if (!strcmp(op,"listar")) system("dir"); else printf("comando inválido....\n"); scanf("%c",&op); } system("exit"); } deu p/ enteder o que eu quero fazer??só testar alguns comandos do DOS em portugues...só p/ testar mesmo... vocês sabem por não da certo??acontece como se o teste ficasse sempre com falso, porque só escreve comando invalido e o pior, escreve várias vezes....o que ta acontecendo?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Setembro 28, 2004 Denunciar Share Postado Setembro 28, 2004 Troque a linha... scanf("%c",&op); ... por: scanf("%s", &op);Pois, afinal de contas você quer pegar uma string e não apenas um caracter.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Setembro 28, 2004 Denunciar Share Postado Setembro 28, 2004 o pior, escreve várias vezes.... É que a condição que você colocou só vai sair do loop se a comparação for igual. while (strcmp(op,"sair")!=0) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manwë Súlimo Postado Setembro 28, 2004 Autor Denunciar Share Postado Setembro 28, 2004 ué, mas nesse caso não é ==0 que é uma comparaçào igual?? o que é diferentede zero é diferente da string que eu quero não é???até Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Setembro 28, 2004 Denunciar Share Postado Setembro 28, 2004 , mas nesse caso não é ==0 que é uma comparaçào igual?? o que é diferentede zero é diferente da string que eu quero não é??? Exatamente só que quando a comparação for igual é que retorna zero, no caso do seu código:while (strcmp(op,"sair")!=0)Tem o sinal de diferente de zero (!=), ou seja , só vai sair do loop quando a condição for igual a zero (strings iguais) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Manwë Súlimo
Pessoal, talvez seja uma pergunta bem estúpida, mas....
como se declara uma string no C???
até mais
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.