From owner-freebsd-hackers@FreeBSD.ORG Mon May 2 14:43:36 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3045106566B for ; Mon, 2 May 2011 14:43:36 +0000 (UTC) (envelope-from robpilling@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id AB5D98FC21 for ; Mon, 2 May 2011 14:43:36 +0000 (UTC) Received: by iyj12 with SMTP id 12so6622572iyj.13 for ; Mon, 02 May 2011 07:43:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=mAOczzvaVhaGEKBCN3Rn9sEZWq1V+BfuDPMrRdi1fGs=; b=YobdgBKaBrWE179FeX1ujtBRin3r2fdV9FjEI34Oc520ji864hDxZUJqHHJ65FNXa0 nrxEFlsIiZFb7bDXaU4DlRXcHHhYcJowQfX4xCifAnUjuKZ1XAFxpfu3KOH3umT6IqW/ BVzec7E2TnPwjygcoiFR/Qs+UnvSqMbmVdDXY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=Hv73iH5KJzueAr3YnKJ0xnmry5IYjtjFcJBgWRRsVOWjxp8PpWuuAB4wTYDVKyge7H WyPp0C/souHFFkIJsPPapXsMw1W/Yhkyof3l2kmDieBNsqOvHJ6fmYgHNlBqHm/thHQr iYKZGucRGc+Ow1/UJ29lkM3KzTxCoABCWGQMg= MIME-Version: 1.0 Received: by 10.42.161.74 with SMTP id s10mr4698706icx.28.1304346054602; Mon, 02 May 2011 07:20:54 -0700 (PDT) Received: by 10.42.219.134 with HTTP; Mon, 2 May 2011 07:20:54 -0700 (PDT) In-Reply-To: References: <4DBEAAD5.7040906@bytecamp.net> Date: Mon, 2 May 2011 15:20:54 +0100 Message-ID: From: Rob To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [LIBC] Modfied Version of sscanf X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 14:43:37 -0000 For goodness sake, it's not even NP-complete. char *start = strchr(line, ' ') + 1; char *end = strrchr(line, ' '); char *ret; *end = '\0'; ret = strdup(start); *end = ' '; return ret; Obviously there's no error checking, but there you go. I don't see what's inelegant about that. This is C, use pointers, if you want high level string parsers, use Perl. Cheers, Rob.