jacquel 0 Denunciar post Postado Abril 21, 2009 Esse programa consiste em converter as letras de (uma palavra dada pelo usuário) que estiverem em maiuscula para minuscula e vice-versa. EXEMPLO: cAsA->deve retornar CaSa. O programa abaixo tá dando erro ao tentar coverter a letra para minusculo http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif #include<stdio.h> #include<conio.h> #include<string.h> main(){ char nome[100]; int i; printf("Digite um nome"); scanf("%s", nome); for (i=0;i<strlen(nome); i++) { if (nome[i]>=97 && nome[i]<=122) strupr(nome);//Converte a string recebida p/ em maiúscula else if (nome[i]>=65 && nome[i]<=90)//maiuscula strlwr(nome);//Converte a string recebida como parâmetro em minuscula } printf("Novo nome: %s", nome); getch(); } Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Abril 21, 2009 Que erro está dando? Você não deveria passar nome para as funções strupr e strlwr? Você está usando a tag code errado, o código de vir depois de [ code ] mas antes de [ /code ]. Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Abril 21, 2009 Cara, acho que não vai conseguir fazer usando essas funções pois elas convertem a string toda e não é o que queremos. Não to lembrado, mas tem funções pra fazer a conversão apenas de caracters. Dá uma olhada http://br.geocities.com/sdiasneto/c_int/caracter.htm Compartilhar este post Link para o post Compartilhar em outros sites
eibon 2 Denunciar post Postado Abril 22, 2009 Tem mais coisa errada ai...eis um exemplo que fiz: #include <stdio.h> char *toUpperLowerV(char str[]); int main() { char nome[50]; printf("Digite seu nome:"); scanf("%s", nome); printf("%s", toUpperLowerV(nome)); return 0; } char *toUpperLowerV(char str[]){ int len = sizeof(str)/sizeof(char), i; //sizeof(char) = 1 (geralmente) for(i = 0;i < len;i++){ int charCode = ((int)str[i]); if(charCode >= 97 && charCode <= 122){ charCode -= 32; } else if(charCode >= 65 && charCode <= 90){ charCode += 32; } else if(str[i] == '\0') { break; } str[i] = (char)charCode; } return str; } Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 22, 2009 É verdade, como mostrou o eibon você pode fazer a conversão usando o codigo ascii, ou: char toUpper(char); char loLower(char); que na verdade fazem a mesma coisa... :P Não me lembro onde em que biblioteca estão, mas uma rápida pesquisa e você descobre! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites