Date: Mon, 19 Oct 2009 04:02:29 +0200 From: Polytropon <freebsd@edvax.de> To: Gary Kline <kline@thought.org> Cc: FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: need C help, passing char buffer[] by-value.... Message-ID: <20091019040229.b4e11bbc.freebsd@edvax.de> In-Reply-To: <20091019013337.GA9522@thought.org> References: <20091019013337.GA9522@thought.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 18 Oct 2009 18:33:43 -0700, Gary Kline <kline@thought.org> 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, ...
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091019040229.b4e11bbc.freebsd>