Autor
|
Tema: Contar letras en cualquier oración (Leído 4,088 veces)
|
erickcasita
Desconectado
Mensajes: 12
|
Hola, he estado haciendo este ejercicio para contar las letras de una frase, al parecer funciona bien pero necesito saber que más agregarle o si me falta algo... Muchas gracias #include <stdio.h> #include <string.h> int main() { char nomb[100]; int let, cont = 1; printf("Ingrese una frase\n"); fgets(nomb , 100, stdin ); //saco la longitud original for (int i = 0; i < let; i++) { if (nomb[i] == ' ') { cont++; //cuento los espacios en blanco } } let = let - cont; // al final simplemente lo resto a la longitud original. printf("\n La frase tiene %d palabras", let ); return 0; }
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
fary
|
Está bien, aunque lo puedes remusir un poco #include <stdio.h> int main() { char nomb[100]; int i, a = -1; printf("Introduce tu frase: "); for (i = 0; nomb[i] != '\0'; i++) { if (nomb[i] != ' ') a++; } printf("Hay %i letras.\n", a ); return 0; }
saludos.
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Te recomiendo la librería ctype.h. Tiene funciones para discriminar letras, números, caracteres imprimibles, etc. Tú programa solo busca espacios; una tabulación, signos o números serán cobrados como letras.
|
|
|
En línea
|
|
|
|
erickcasita
Desconectado
Mensajes: 12
|
Me puse a investigar un poco sobre la librería cytpe.h y logre hacer esto espero quede correcto: saludos cordiales #include <stdio.h> #include <string.h> #include <ctype.h> int main() { char nomb[100]; int let, cont, contsig, contespa; int suma, rptaletra; printf("Ingrese una frase\n"); let = strlen(nomb );//saco la longitud original for (int i = 0; i < let; i++) { cont++; //cuento los numeros } contsig++; //cuento los signos etc.. } contespa++; //cuento los espacios etc.. } suma = cont + contsig + contespa; / sumo los contadores } rptaletra = let - suma; // al final simplemente lo resto a la longitud original. printf("\n La frase tiene %d letras", rptaletra ); return 0; }
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
No hace falta que sean contadores diferentes, puedes seguir incrementando el mismo. También tienes isalpha que discrimina letras, pero ahora no sé si con el correspondiente locales en español también le entran acentos y eñes.
|
|
|
En línea
|
|
|
|
erickcasita
Desconectado
Mensajes: 12
|
de hecho el carácter ñ lo toma como si fueran 2.
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
vangodp
Desconectado
Mensajes: 455
|
de hecho el carácter ñ lo toma como si fueran 2. En windows sale bien: #include <stdio.h> #include <string.h> #include <ctype.h> #include <locale.h> int main() { //setlocale(LC_ALL, ""); int let=0, cont=0, contsig=0, contespa=0; int suma=0, rptaletra=0, i; char nomb[100]; scanf("%99[^\n]%*c", nomb ); for (i = 0; i < let; i++) { cont++; //cuento los numeros } contsig++; //cuento los signos etc.. } contespa++; //cuento los espacios etc.. } suma = cont + contsig + contespa; // sumo los contadores } rptaletra = let - suma; // al final simplemente lo resto a la longitud original. printf("\n La frase tiene %d letras", rptaletra ); return 0; }
|
|
|
En línea
|
|
|
|
erickcasita
Desconectado
Mensajes: 12
|
Estuve leyendo algo sobre locale.h pero no entiendo muy bien. Aquí el linux sigue contado el carácter "ñ" y los acentos como 2 carácteres. ¿qué podría estar pasando?
|
|
|
En línea
|
"Nadie nace sabiendo, Todos aprendemos y seguimos aprendiendo."
|
|
|
vangodp
Desconectado
Mensajes: 455
|
Puede ser el codepage de la terminal. Puede que esté seteada como unicode o utf. Debe haber algo como una función que te diga el codepage actual, y otra para modificar, pero realmente no estoy muy seguro de nada ya que no sé mucho sobre linux. Pero sé que em algunas paginas de código los acentos son contados como una letra más, o sea, 'ñ' seria contado como 2 letras, el '~' más 'n'. En todo caso aguarde alguien que tenga algo más de luces mejor que yo. >_<
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Contar letras minusculas y mayusculas
Ejercicios
|
kay19
|
0
|
12,069
|
9 Septiembre 2009, 20:06 pm
por kay19
|
|
|
contar letras de un texto
« 1 2 3 4 »
Programación C/C++
|
ALONSOQ
|
33
|
27,448
|
4 Julio 2012, 23:05 pm
por ALONSOQ
|
|
|
letras iniciales de una oracion en mayuscula
Programación C/C++
|
bobitttyy
|
5
|
3,163
|
11 Abril 2015, 19:48 pm
por rir3760
|
|
|
Ingresar una oracion, toma cada palabra y contar sus vocales(Solucionado)
.NET (C#, VB.NET, ASP)
|
01munrra
|
2
|
3,384
|
30 Septiembre 2015, 03:46 am
por 01munrra
|
|
|
[Python 3x] Contar las letras de cualquier frase
Python
|
erickcasita
|
8
|
12,519
|
29 Enero 2018, 18:32 pm
por erickcasita
|
|