Προς το περιεχόμενο

Επεξεργασία string σε c


Mike_ledis

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα!Προσπαθώ να φτιάξω ένα πρόγραμμα στη c το οποίο αρχικά θα διαβάζει την πρώτη λέξη απο ένα αρχείο. Ύστερα θα πηγαίνει σε ένα άλλο αρχείο θα διαβάζει ανα γραμμή και μία λέξη και θα την συγκρίνει με την πρώτη.Έκανα το παρακάτω πρόγραμμα αλλα κάτι δέν έχω κάνει σωστά.

 

main()

{

FILE *cfPtr1,*cfPtr2;

int g1,f;

int i;

char sizeLineInput1[512],sizeLineInput2[512];

cfPtr1=fopen("mike1.txt","r");

cfPtr2=fopen("mike2.txt","r");

fgets(sizeLineInput2, 512, cfPtr2); //Παίρνω την πρώτη λέξη απο το αρχείο

while (fgets(sizeLineInput1, 512, cfPtr1)!=NULL)// Ελεγχος για αν έχει τελειώσει το αρχείο

{

g1=strncmp(sizeLineInput1,sizeLineInput2,512); Σύγκριση

printf("%d\n",g1);Εκτύπωση αποτελέσματος

 

 

}

scanf( "%d", &f );

 

}

Δημοσ.

θέλει κάποιες αλλαγές δες τον κώδικα

 

>
#include <stdio.h>
#include <string.h>
int main(){
   FILE *cfPtr1,*cfPtr2;
   int i;
   char sizeLineInput1[512],sizeLineInput2[512];
   cfPtr1=fopen("mike1.txt","r");
   cfPtr2=fopen("mike2.txt","r");
   fgets(sizeLineInput2, 512, cfPtr2); 
   if (sizeLineInput2[strlen(sizeLineInput2)-1]=='\n')
           sizeLineInput2[strlen(sizeLineInput2)-1]='\0';
   while (fgets(sizeLineInput1, 512, cfPtr1)!=NULL){
       if (sizeLineInput1[strlen(sizeLineInput1)-1]=='\n')//το fgets τελειώνει με ένα \n συνήθως και επειδή μας χαλάει το printf
           sizeLineInput1[strlen(sizeLineInput1)-1]='\0';//απλά το αφαιρούμε
       if (strcmp(sizeLineInput1,sizeLineInput2)==0) //το strcmp είναι καλύτερο
           printf("oi lekseis %s kai %s einai ises!\n",sizeLineInput1,sizeLineInput2);
       else
           printf("oi lekseis %s kai %s den einai ises!\n",sizeLineInput1,sizeLineInput2);
   }
   getchar();//δεν χρειαζεται η scanf,αυτό σου αρκεί
   return 0;
} 

Δημοσ.

θέλει κάποιες αλλαγές δες τον κώδικα

 

>
#include <stdio.h>
#include <string.h>
int main(){
   FILE *cfPtr1,*cfPtr2;
   int i;
   char sizeLineInput1[512],sizeLineInput2[512];
   cfPtr1=fopen("mike1.txt","r");
   cfPtr2=fopen("mike2.txt","r");
   fgets(sizeLineInput2, 512, cfPtr2); 
   if (sizeLineInput2[strlen(sizeLineInput2)-1]=='\n')
           sizeLineInput2[strlen(sizeLineInput2)-1]='\0';
   while (fgets(sizeLineInput1, 512, cfPtr1)!=NULL){
       if (sizeLineInput1[strlen(sizeLineInput1)-1]=='\n')//το fgets τελειώνει με ένα \n συνήθως και επειδή μας χαλάει το printf
           sizeLineInput1[strlen(sizeLineInput1)-1]='\0';//απλά το αφαιρούμε
       if (strcmp(sizeLineInput1,sizeLineInput2)==0) //το strcmp είναι καλύτερο
           printf("oi lekseis %s kai %s einai ises!\n",sizeLineInput1,sizeLineInput2);
       else
           printf("oi lekseis %s kai %s den einai ises!\n",sizeLineInput1,sizeLineInput2);
   }
   getchar();//δεν χρειαζεται η scanf,αυτό σου αρκεί
   return 0;
} 

 

Σε ευχαριστω πολύ!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...