Kostasd_G21 Δημοσ. 2 Ιανουαρίου 2010 Δημοσ. 2 Ιανουαρίου 2010 Γεια σας παιδιά έχω να κάνω ένα project και έχω κολλήσει σ' ένα σημείο,βοηθείστε... >#include<stdio.h> #include<stdlib.h> #include<string.h> int main(){ char *name; name=(char*)malloc(50*sizeof(char)); gets(name); if (name=="KO") puts("1"); else exit(1); free(name); system("pause"); } Θέλω όταν ο χρήστης πληκτρολογεί ΚΟ να του βγάζει στην οθόνη 1 αλλά όσο και αν προσπάθησα δεν βγήκε αποτέλεσμα...
jstark Δημοσ. 2 Ιανουαρίου 2010 Δημοσ. 2 Ιανουαρίου 2010 Γεια σας παιδιά έχω να κάνω ένα project και έχω κολλήσει σ' ένα σημείο,βοηθείστε... > int main(){ char *name; name=(char*)malloc(50*sizeof(char)); gets(name); if (name=="KO") puts("1"); else exit(1); free(name); system("pause"); } Θέλω όταν ο χρήστης πληκτρολογεί ΚΟ να του βγάζει στην οθόνη 1 αλλά όσο και αν προσπάθησα δεν βγήκε αποτέλεσμα... Η γραμμή >if (name == "KO") τί πιστεύεις ότι κάνει; Αντικατέστησέ την με >if (!strcmp(name, "KO")) Δεν ξέρω με ποιον compiler κάνεις compile, αλλά σίγουρα πρέπει να σου έχει βγαλει ουκ ολίγα warnings. Για παράδειγμα η gets είναι λίγο unsafe συνάρτηση.
karabouzouk... Δημοσ. 2 Ιανουαρίου 2010 Δημοσ. 2 Ιανουαρίου 2010 Το == δεν χρησιμοποιήται για να ελένξεις την ισότητα σε συμβολοσειρές γιατί στην ουσία είναι πίνακες από σύμβολα. Μπορείς να ελένξεις έναν έναν τους χαρακτήρες της συμβολοσειράς αν είναι ίσοι με τους χαρακτήρες μιας άλλης ή απλά να χρησιμοποιήσεις τη συνάρτηση strcmp(a, που αν οι συμβολοσειρές a,b είναι ίσες επιστρέφει τον ακέραιο 0. πχ: >if (strcmp(name,"KO")==0){ puts("1"); }
Kostasd_G21 Δημοσ. 2 Ιανουαρίου 2010 Μέλος Δημοσ. 2 Ιανουαρίου 2010 Ευχαριστώ για την βοήθεια παιδιά!
greatst Δημοσ. 3 Ιανουαρίου 2010 Δημοσ. 3 Ιανουαρίου 2010 Η γραμμή >if (name == "KO") τί πιστεύεις ότι κάνει; ... Εδώ ακριβώς βρίσκεται η ουσία!
Evgenios1 Δημοσ. 4 Ιανουαρίου 2010 Δημοσ. 4 Ιανουαρίου 2010 >// ca_2.cpp : Defines the entry point for the console application. // #include "stdafx.h"//replace with stdio.h & stdlib.h int _tmain(int argc, _TCHAR* argv[])//replace with "int main()" { char c1=0; char c2=0; char *str1=0; char *str2=0; c1='X'; c2='X'; if(c1==c2){} else{} printf("Ti kanw?\n"); printf("if(%c==%c){}\n",c1,c2); printf("else{}\n\n\n"); str1="y"; str2=(char*)malloc(1); if(str1==str2){} else{} printf("Ti kanw?\n"); printf("if(%p==%p){}\n",str1,str2); printf("else{}\n"); getchar(); return 0; }
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.