Fala povo, seguinte, é meu primeiro tópico de duvida aki no forum e quero tirar uma duvida ke está me deixando de cabelo em pé! xD
Aki vai o programa:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char frase[51];
unsigned int vmomento1;
printf("Digite uma frase de até 50 caracteres:");
gets(frase);
// strupr(frase); //dica 175 Livro C/C++ a Bíblia
for(vmomento1=0; vmomento1<=51; vmomento1++)
{
if (frase[vmomento1]>='a' && frase[vmomento1]<='z') //testa se é minúscula e transforma em Maiúscula
frase[vmomento1]-=32;
switch (frase[vmomento1])
{
case 'A' : printf("xD\n"); break;
case 'B' : printf("=D\n"); break;
case 'C' : printf("2\n"); break;
case 'D' : printf("3\n"); break;
case 'E' : printf("4\n"); break;
case 'F' : printf("5\n"); break;
case 'G' : printf("6\n"); break;
case 'H' : printf("7\n"); break;
case 'I' : printf("8\n"); break;
case 'J' : printf("9=D\n"); break;
case 'K' : printf("10=D\n"); break;
case 'L' : printf("=11D\n"); break;
case 'M' : printf("=12D\n"); break;
case 'N' : printf("13=D\n"); break;
case 'O' : printf("=14D\n"); break;
case 'P' : printf("=D15\n"); break;
case 'Q' : printf("=D16\n"); break;
case 'R' : printf("=D17\n"); break;
case 'S' : printf("=D18\n"); break;
case 'T' : printf("=D19\n"); break;
case 'U' : printf("=D20\n"); break;
case 'V' : printf("=D21\n"); break;
case 'W' : printf("=D22\n"); break;
case 'X' : printf("=D22\n"); break;
case 'Y' : printf("=D23\n"); break;
case 'Z' : printf("=D24\n"); break;
case 32 : printf("espacoooo\n"); break;
case 49 : printf("111\n"); break;
}
printf(" - vmoment: %d, letra: %c . numero: %d\n", vmomento1, frase[vmomento1], frase[vmomento1]); /*teste de resultados das variaveis */
}
system("PAUSE");
return 0;
}
Esse programa faz o seguinte, a pessoa digita a frase, e a cada caracter digitado, ele transformar em maiúscula e depois imprimi um valor pré determinado para cada caracter.
Eu utilizei duas maneiras de transformar em maiúsculas os caracteres, e os dois dão problemas diferentes, um é utilizando a função strupr e a outra eu mesmo criei(antes de descobrir a strupr, mas ke funciona do mesmo jeito xD)
Viram? Sem inicializar a string os resulados ficam loucos e geram caracteres sem sentidos de acordo com o cálculo...e assim o programa acaba mostrando algo na tela ke a pessoa não digitou..
Ao inicializar....só o ultimo fika estranho...e acaba mostrando algo na tela..
alguém sabe uma explicação para esse problema da string vazia dar valor aleatório(não devia estar como ''?) e ao zerar elas apenas a ultima ter algum valor?
Pergunta
DifusioN
Fala povo, seguinte, é meu primeiro tópico de duvida aki no forum e quero tirar uma duvida ke está me deixando de cabelo em pé! xD
Aki vai o programa:
Esse programa faz o seguinte, a pessoa digita a frase, e a cada caracter digitado, ele transformar em maiúscula e depois imprimi um valor pré determinado para cada caracter.
Eu utilizei duas maneiras de transformar em maiúsculas os caracteres, e os dois dão problemas diferentes, um é utilizando a função strupr e a outra eu mesmo criei(antes de descobrir a strupr, mas ke funciona do mesmo jeito xD)
Os problemas: Ao utilizar o minha forma sem inicializar a string ele se comporta assim: http://img196.imageshack.us/img196/3359/1eucriei.jpg
Ao utilizar minha forma inicializando a string com ="", fika assim: http://img196.imageshack.us/img196/3079/3eucrieiaspas.jpg
Usando o Strupr, sem inicializar: http://img195.imageshack.us/img195/6959/2strupr.jpg
Usando o Strupr, inicializando com ="": http://img295.imageshack.us/img295/3870/4strupraspas.jpg
Viram? Sem inicializar a string os resulados ficam loucos e geram caracteres sem sentidos de acordo com o cálculo...e assim o programa acaba mostrando algo na tela ke a pessoa não digitou..
Ao inicializar....só o ultimo fika estranho...e acaba mostrando algo na tela..
alguém sabe uma explicação para esse problema da string vazia dar valor aleatório(não devia estar como ''?) e ao zerar elas apenas a ultima ter algum valor?
Abraçoss
Editado por DifusioNLink para o comentário
Compartilhar em outros sites
2 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.