Mail Archives: djgpp/1998/05/23/02:33:07
From: | "Martin Ambuhl" <mambuhl AT tiac DOT net>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Re: "Problem with a text string"
|
Date: | Sat, 23 May 1998 02:24:23 -0400
|
Organization: | Nocturnal Aviation
|
Lines: | 43
|
Message-ID: | <6k5pp6$oa4@news-central.tiac.net>
|
References: | <6k4lhm$6ne$1 AT talia DOT mad DOT ibernet DOT es>
|
NNTP-Posting-Host: | p24.tc2.newyo.ny.tiac.com
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
JOA wrote in message <6k4lhm$6ne$1 AT talia DOT mad DOT ibernet DOT es>...
:Hello, the program:
:#include <stdio.h>
:char name[];
:main()
:{
:printf ("Write your name:");
:scanf ("%s",&name);
:if (nombre=="John") printf ("hello John");
:else printf ("Error");
:}
:
:Always write "Error" if i write "John", but never write "hello John". What
:can i do?
=========
Use strcmp instead of ==.
don't use an undefined variable (nombre)
don't derefernce unitialized pointers
don't use implicit function declarations
don't use the evil scanf
(don't post non-djgpp questions to comp.os.msdos.djgpp)
e.g.
#include <stdio.h>
#include <string.h>
int main(void)
{
char name[BUFSIZ], *nl;
printf ("Write your name: ");
fflush(stdout);
fgets(name, sizeof name, stdin);
if ((nl = strchr(name,'\n'))) *nl = 0;
: if (!strcmp(name,John"))
printf ("hello John\n");
else
printf ("Error\n");
return 0;
}
==========
:
:
- Raw text -