From owner-freebsd-questions@FreeBSD.ORG Mon Oct 19 02:02:32 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE5521065672 for ; Mon, 19 Oct 2009 02:02:32 +0000 (UTC) (envelope-from freebsd@edvax.de) Received: from mx01.qsc.de (mx01.qsc.de [213.148.129.14]) by mx1.freebsd.org (Postfix) with ESMTP id ACB718FC0A for ; Mon, 19 Oct 2009 02:02:32 +0000 (UTC) Received: from r55.edvax.de (port-92-195-71-245.dynamic.qsc.de [92.195.71.245]) by mx01.qsc.de (Postfix) with ESMTP id 818383C95B; Mon, 19 Oct 2009 04:02:31 +0200 (CEST) Received: from r55.edvax.de (localhost [127.0.0.1]) by r55.edvax.de (8.14.2/8.14.2) with SMTP id n9J22TD1002164; Mon, 19 Oct 2009 04:02:30 +0200 (CEST) (envelope-from freebsd@edvax.de) Date: Mon, 19 Oct 2009 04:02:29 +0200 From: Polytropon To: Gary Kline Message-Id: <20091019040229.b4e11bbc.freebsd@edvax.de> In-Reply-To: <20091019013337.GA9522@thought.org> References: <20091019013337.GA9522@thought.org> Organization: EDVAX X-Mailer: Sylpheed 2.4.7 (GTK+ 2.12.1; i386-portbld-freebsd7.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: FreeBSD Mailing List Subject: Re: need C help, passing char buffer[] by-value.... X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Polytropon List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Oct 2009 02:02:33 -0000 On Sun, 18 Oct 2009 18:33:43 -0700, Gary Kline wrote: > Guys, > > maybe this can't be done reading in a file with fgets(buffer[128], fp), > then calling skiptags(), conditionally, to while () past ',' and '>'. > > I know I need to calll skipTags with its address, skipTags(&buffer);, > but then how to i > handle the variable "s" in skipTags? Anybody? It's quite complicated. Soes it need to be? :-) > // redo, skip TAGS Is this C or C++ source code? I always thought // was C++ specific... > skipTags((char *)&s) Where's my return datatype? And when (int) is the default, where is my return statement? :-) > { > if (*s == '<') > { > while (*s != '>') > { > s++; > } > s++; > } > } If you need type conversion, you can't do this in the function's declaration. You need to perform this with the call. The function would rather start as void skipTags(char *s) and then be called with the correct pointer char *bla; ... skipTags(bla); Instead of pointer arithmethics, which is one of the ultimate skills in C, you could use an iterator from 0 to strlen(s). I think the code above is just part of a bigger mechanism. Looks like you want to "shift" the character pointer to override any <...> segments, and then let some other parts do something more, right? -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...