Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jacquel

String

Recommended Posts

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

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

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

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

É 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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.