Dev - C++ - No entiendo por que no funciona

 
Vista:
sin imagen de perfil
Val: 33
Ha disminuido su posición en 4 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

No entiendo por que no funciona

Publicado por Jorge (24 intervenciones) el 18/01/2019 07:56:40
Miren el problema es que no imprime el arreglo del final no se por que esta todo bien, es un programa que busca las letras a y c en las palabras de un texto y las imprime al final, pero ojo la ultima palabra del arreglo no la toma en cuenta gracias a que termina el programa cuando encuentra el caracter nulo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
main()
{
	int T=500,texto3=0,texto4=0,a,b,c,d,cuenta=0,cero=0,textot=0;
	char texto[T]={'\0'};  // recibe el texto
	char texto2[T]={'\0'};  //recibe las palabras con las letras a y c
 
	gets(texto);  //funcion que sirve para pedir varias cadenas a diferencia del scan, como un texto por ejemplo
 
	for(a=0;a<T;a++)
	{
		if(texto[a]='\0')
		break;
		if(texto[a]=' ')
		{
			for(b=a-1;b>=cero;b++)
			{
				if(texto[b]='a') texto3=1;
 
				if(texto[b]='c') texto4=1;
 
				textot=texto3+texto4;
				if(b==cero&&textot==2) // aqui se asegura que llege al final de la palabra por si encontro las dos letras antes, si no la palabra se copiaria hasta donde encontro la segunda letra
				{
					for(c=cero;c<a;c++)
					{
						texto2[cuenta]=texto[c];
						cuenta++;
						if(c==a-1)  // agrega un espacio en blanco despues de copiar la palabra, no es de importancia
						{
						texto2[cuenta]='  ';
						cuenta++;
					    }
					}
				}
			}
		}
		texto3=0;
		texto4=0;
		cero=a+1;
	}
	for(d=0;d<T;d++)  // aqui utilice el puts pero de igual manera no imprime
	{
		if(texto[d]=='\0') break;
		printf("%c", texto2[d]);
	}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

No entiendo por que no funciona

Publicado por Alfil (1444 intervenciones) el 18/01/2019 13:47:01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <string>
#include <cctype>
 
using namespace std;
 
int main () {
    string s;                   // cadena de caracteres
    char c;                     // lectura de un caracter
    int la = 0;                 // cantidad de letras 'A'
    int lc = 0;                 // cantidad de letras 'C'
 
    cout << "Escriba una frase: ";
    while ( c != '\n' ) {
        c = cin.get();
        s += c;
 
        if ( toupper( c ) == 'A' )
            la++;
        if ( toupper( c ) == 'C' )
            lc++;
        }
 
    cout << "\nLa frase: " << s
         << "Contine: " << la << " letras A y " << lc << " letras C." << endl;
 
 
} ///:~
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

No entiendo por que no funciona

Publicado por Alfil (1444 intervenciones) el 19/01/2019 00:05:45
Con un array en C sería así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <ctype.h>
 
int main () {
    const int sz = 500;         // tamaño del array
    char v[sz];                 // cadena de caracteres
    char c;                     // lectura de un caracter
    int la = 0;                 // cantidad de letras 'A'
    int lc = 0;                 // cantidad de ñetras 'C'
    int i = 0;                  // indice del array
 
    printf( "Escriba una frase: " );
    scanf( "%c", &c );
    while ( c != '\n' ) {
        v[i]= c;
 
        if ( toupper( c ) == 'A' )
            la++;
        if ( toupper( c ) == 'C' )
            lc++;
 
        i++;
        scanf( "%c", &c );
    }
    v[i]= '\0';
 
    printf( "\nLa frase: %s", v );
    printf( "\nContine: %d letras A y %d letras C.\n", la, lc );
 
 
} ///:~
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar