porque no me coplia el programa lenguaje #C

Iniciado por carlosbds4, 2 Diciembre 2012, 16:25 PM

0 Miembros y 1 Visitante están viendo este tema.

carlosbds4

Que tal estoy haciendo un programa que determine si una palabra o frase fue escrita en mayúscula, minúscula o mixta aqui tengo mis codigos pero tengo una falla que no se que paso si sera que me faltara una libreria o que porfavor ayuda se los agradezco :)

#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <string.h>
#define EXIT_SUCCESS 0
#define mt 500
using namespace std;
char txt[mt];
int len , Uper = 0 , Lower = 0;
    int main(){
    cout << "Inserte su texto( 500 chrs ): " << endl;
    cin >> txt;
     
    len = strlen( txt );
     
    for ( int i = 0; i < len; i++ ){
        if ((txt >="a") && (txt <="z")) Lower++;
           else
        if ((txt >="A") && (txt <="Z")) Uper++;
        }
     
    if ( Uper == 0 && Lower > 0 && len > 0 ) cout << "Todas son minúsculas."; else
    if ( Uper > 0 && Lower == 0 && len > 0 ) cout << "Todas son mayúsculas."; else
    if ( Uper > 0 && Lower && len > 0) cout << "Es mixto."; else
    if ( len == 0 ) cout << "Su texto no tine chrs.";
     
    system( "pause > nul" );
     
    return EXIT_SUCCESS;
    }

avesudra

¿Puede ser esta?
#include <windows.h>

PD: No sabía que conio existiese para C#

¡Un saludo!
Regístrate en

carlosbds4

no el problema sigue :( uso devc y el codeblocks pero en ninguno copila

pMV2ere

yo hace poco hice un ejercicio de mayusculas y minusculas...

quiza podria ayudarte tratar los caracteres como numeros(cada letra tiene un numero asociado)

a..z=97..122
A..Z=65..90

rir3760

Cita de: carlosbds4 en  2 Diciembre 2012, 17:03 PM
no el problema sigue :( uso devc y el codeblocks pero en ninguno copila
Supongo el lenguaje utilizado es C++, ¿Correcto?

Deficiencias hay muchas. Errores importantes se encuentran en la sentencia condicional:
Código (cpp) [Seleccionar]

if ((txt >="a") && (txt <="z"))
  Lower++;
else if ((txt >="A") && (txt <="Z"))
  Uper++;

Ya que estas comparando direcciones de memoria, para solucionarlo la comparación debe ser entre caracteres indicando el indice en el array para el primer operando y usando caracteres literales para el segundo. De esta forma:
Código (cpp) [Seleccionar]
if (txt[i] >= 'a' && txt[i] <= 'z')
  Lower++;
else if (txt[i] >= 'A' && txt[i] <= 'Z')
  Uper++;


Otros errores que se deben corregir: cambiar los encabezados por los correctos, eliminar la inclusion de conio ya que no la utilizas en tu programa, etc.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language