Ayuda con programa c++

  • Autor Autor Gabo
  • Fecha de inicio Fecha de inicio
Gabo

Gabo

Zeta
Verificación en dos pasos activada
Hola, bueno quería ver si alguien puede ayudarme pasando este código de c++ a C,
Espero que alguna alma caritativa se apiade de mi hahaha
Gracas
#include <iostream>

using namespace std;

int contar(const char*, const char*);
int main()
{
char cad[41], sub[10];

cout << "Escribe cadena max. 40 carecteres: ";
cin.getline(cad, sizeof(cad));

cout << "Escribe subcadena max. 9 carecteres: ";
cin.getline(sub, sizeof(sub));

cout << "Veces encontrada: " << contar(cad, sub);
return 0;
}

int contar(const char*pal, const char*enc)
{
int i=0, j=0, veces=0;

while(pal)
{
if(pal==enc[j])j++;
if(!enc[j])
{
veces++;
j=0;
}
i++;
}
return veces;
}
 
por esto

#include <iostream>


using namespace std;


int contar(const char*, const char*);
int main()
{
char cad[41], sub[10];


cout << "Escribe cadena max. 40 carecteres: ";
cin.getline(cad, sizeof(cad));


cout << "Escribe subcadena max. 9 carecteres: ";
cin.getline(sub, sizeof(sub));


cout << "Veces encontrada: " << contar(cad, sub);
return 0;
}










Por esto




#include <stdio.h>
int contar(const char*, const char*);
int main() {
char cad[41], sub[10];
printf("Escribe cade...");
fgets(cad, 40, stdin);
printf("Escribe sub...");
fgets(sub, 9, stdin);
printf("veces encontrada %d", contar(cad, sub));
return 0;
}
.
.
.
EDITO: Si lo que quieres es contar subcadenas la logica esta mal, si quieres encontrar subsecuencias, esta bien 😉, subcadenas son seguidas si tienes ahbc y quieres contar cuantas subcadenas abc existen deberia botar 0, en tu codigo bota 1
 
Última edición:
Puede ser así en C:

PHP:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int contar(const char*, const char*);
void main(){

char cad[41], sub[10];
printf("Escribe cadena max. 40 carecteres: \n");
gets(cad);
printf("Escribe subcadena max. 9 carecteres: \n");
gets(cad);
printf("Veces encontrada: %d", contar(cad, sub));

}
int contar(const char*pal, const char*enc){ 
   int i=0, j=0, veces=0;
    while(pal[i])    {   
     if(pal[i]==enc[j])  
          j++;       
    if(!enc[j])     
    {           
     veces++;        
      j=0;     
    }       
    i++;    
 }   
 return veces;
}

Pero parece que la lógica para contar la cadena esta mal.

Saludos!!
 
Última edición:
me gustaría que colocaras las instrucciones del problema, y poder realizar el programa en C
 
Si funciona!, solo hay dos pequeños errores en los códigos que pusieron, ya que en los dos gets pusieron cad, cuando en el segundo iba sub y después
hay un void que debería ser int y ya funciona 🙂
El ejercicio decia "Crear un programa que pida una cadena de caracteres, después que el usuario ponga otra palabra y encuentra cuantas veces esta la palabra en la cadena"

#include <stdio.h>
#include <conio.h>
#include <string.h>
int contar(const char*, const char*);
int main(){

char cad[41], sub[10];
printf("Escribe cadena max. 40 carecteres: \n");
gets(cad);
printf("Escribe subcadena max. 9 carecteres: \n");
gets(sub);
printf("Veces encontrada: %d", contar(cad, sub));

}
int contar(const char*pal, const char*enc){
int i=0, j=0, veces=0;
while(pal) {
if(pal==enc[j])
j++;
if(!enc[j])
{
veces++;
j=0;
}
i++;
}
return veces;}
 
Gabo estas en primero en sistemas ?

hasta aqui me quede en C
PHP:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
  int contar,i=0,j=0,veces=0;
  char cad[41],sub[10];
  clrscr();
  printf("Escribe cadena max. 40 caracteres: \n ");
  cad=getch();
  printf("Escribe subcadena max. 9 carecteres: \n");
  sub=getch();
 
Última edición:
Atrás
Arriba