🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #907

Re: Problemy z funkcja 'strcat'

#907
From: Michal Malecki
Date: Mon, 26 Jan 1998 13:55
43 lines
2335 bytes
Pawel Koloszko <pablo@delta.ds2.pg.gda.pl> wrote:
: Tworze wlasnie projekt z C++ i duzo dzialam na lancuchach. Pisze w
: BorlandC wersja 3.1. Raz po raz korzystam z funkcji 'strcat'(prototyp 
: w zbiorze naglowkowym string.h),jest mi ona
: wrecz niezbedna, ale zauwazylem ze cos z nia jest nie tak.Wyjasnie na
: przykladzie:
: mam trzy lancuchy:
: 	char *a="ala",*b="burek",*c="domek";
: nastepnie wykonuje nastepujacy ruch:
: 	a=strcat(b,a);

Nie bede sie powtarzal po kolegach, jak to powienienes wykonac, zeby bylo
poprawnie. Musze tylko stwierdzic, ze albo cos sobie ubzdurales na temat tej
funkcji, albo korzystales z literatury, ktora dosc niezrozumiale to tlumaczy.
Jej dzialanie NIE polega na laczeniu lancuchow!
Mozna by ta funkcje napisac w ten sposob:

char* strcat( char* gdzie, const char* co )
{
	char* koniec = strchr( gdzie, '\0' );
	return strcpy( koniec, co );
}

Jak widzisz, funkcja ta nie przydziela na nowo pamieci, powoduje jedynie
zwykle SKOPIOWANIE napisu do lancucha do tablicy. Od strcpy rozni sie tylko
tym, ze kopiuje go na koniec poprzedniego, czyli w miejsce, gdzie znalazl
zero oznaczajace koniec lancucha (koniec lancucha to NIE koniec tablicy!).

I jeszcze jedno, podane rozwiazanie nie jest specjalnie szczesliwe. Pokaze
ci inne:

char wszystko [80];

strcpy( wszystko, "ala" );
strcat( wszystko, " burek" );

Pozdrawiam,

-- 
.---.     .   . - Michal Malecki <mmalecki@technologist.com>/The things that
\___  ,-. | , |- ,-. ,-  mUd: zly.mud.org.pl 4000.         /can't destroy you
    \ |-' |<  |  | | |   uRl: www.kis.p.lodz.pl/~sektor   /make you
`---' `-' ' ` `' `-' '   pGp: sektor@zly.kis.p.lodz.pl   /stronger...
Technical Details
Message-ID: <6ai4l7$npt@polonez.man.lodz.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!uucp-gw.cyf.gov.pl!news.memax.krakow.pl!news.task.gda.pl!news.man.lodz.pl!not-for-mail
References: <Pine.GSO.3.96.980124181133.9765A-100000@delta.ds2.pg.gda.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!uucp-gw.cyf.gov.pl!news.memax.krakow.pl!news.task.gda.pl!news.man.lodz.pl!not-for-mail
From: Michal Malecki <sektor@zly.kis.p.lodz.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Problemy z funkcja 'strcat'
Date: 26 Jan 1998 13:55:51 GMT
Lines: 43
Message-ID: <6ai4l7$npt@polonez.man.lodz.pl>
References: <Pine.GSO.3.96.980124181133.9765A-100000@delta.ds2.pg.gda.pl>
NNTP-Posting-Host: sektor@zly.kis.p.lodz.pl
User-Agent: tin/pre-1.4-980105 (UNIX) (SunOS/5.5.1 (i86pc))
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit