ayuda con comparacion de cadenas

Imagen de aless
0 puntos

hola que tal estoy empesando a programar en c, estoy aprendiendo por el momento lo basico sin embargo se me ocurrio un pequeño prorama pues estoy veindo lo que es comparacion de cadenas como estoy aprendiendo solo, pues no se si valla bien  este es lo que he hecho

 #include <stdio.h>
 #include<cstring>
 #include <iostream>
 int main() {
 char cadena1[]=*archivo
 char cadena2[]="hola";
 char cadena3[]="adios";
   FILE *archivo;

   archivo = fopen("voz.txt","r");
   if (archivo == NULL){
     exit(1);
     }

   if (strcmp(cadena1,cadena2)==0){

       printf ("\n hola como estas  \n\n");

    }

   if (strcmp(cadena1,cadena3)==0){

       printf ("\n que estes bien  \n\n");

    }
 
 }

lo que quiero hacer es comparar lo ke tengo en la cadena 1 que es un archivo txt guadado con anterioridad

con las otras dos cadenas.

espero me puedan ayudar y me guien y pronto yo pueda ayudar a descarriados como yo.

 muchas gracias.

 

Imagen de neosng
+1
0
-1

No está mal del todo, ahí adaptado a linux:

#include <stdio.h>
#include <strings.h> // en linux no hay iostream ni cstring, a no ser que te las montes tú

int main() {

char cadena1[15]; /* no se puede asignar el archivo a una cadena (y menos cuando no se ha definido "archivo"), además hay que darle un tamaño */
char cadena2[]="hola";
char cadena3[]="adios";
FILE * archivo;
 
archivo = fopen("voz.txt","r");
if (archivo == NULL) {
    printf("\n No archivo? No party! \n\n");
    return 1; // return es suficiente
    }
 
fscanf(archivo, "%15s", cadena1); // ¿tendrás que leer del archivo no? :P

if (strcmp(cadena1,cadena2)==0) {
    printf ("\n Hola, ¿Cómo estás?  \n\n");
    } else if (strcmp(cadena1,cadena3)==0) {
        printf ("\n ¡Que estés bien!  \n\n");
        } else printf("\n ¿Qué quieres decir con '%s'? \n\n",cadena1);

return 0;
}

Saludos.

+1
0
-1
Imagen de neosng
+1
0
-1

Yo te recomiendo Python... y sino mira la sencillez y claridad de su código:

#!/usr/bin/python
# -*- coding: iso-8859-15 -*-

archivo=open('voz.txt', 'r')
cadena1=archivo.readline()
cadena2="hola\n"
cadena3="adios\n"

if cadena1==cadena2:
        print "Hola, ¿Cómo estás?"
elif cadena1==cadena3:
        print "¡Que estés bien!"
else:
        print "¿Qué quieres decir con " + cadena1 + "?"

 

Más en http://pyspanishdoc.sourceforge.net/

+1
0
-1
Imagen de RagonichaFulva
+1
0
-1

Genial...

Tengo unas ganas de meterme en Python... me puse a leerme el libro de "Diving into Python", pero no me gustó nada... creo que da demasiado por sabido.

Más referencias serán bienvenidas.

"La perseverancia es un árbol de raíces amargas, pero de frutos muy dulces."

Reclutador sin escrúpulos de doc.ubuntu-es.org ;)

¡Sorteo de foto de los admins de Tux!

+1
0
-1

"La perseverancia es un árbol de raíces amargas, pero de frutos muy dulces."

Imagen de aless
+1
0
-1

muchas gracias si me esta ayudando mucho lo ke me dices creo ke ya funciona tal y como lo ke kiero

+1
0
-1
Imagen de jorgerider
+1
0
-1

Siempre que abras un fichero en C, no te olvides de cerrarlo, o te puede dar problemas en la compilación, y no vendrán en la línea en la que realmente están. Siempre, cuando abras un fichero, al final:

fclose(archivo);

+1
0
-1