O jei netaupant ir naudojant strcspn dayt taip:
tmp[strcspn( tmp, ".")]='\0'; //tekstas iki tasko
tmp[strcspn( tmp, " ")]='\0'; //tekstas iki tarpo
didelis blogis?
Kazkaip megstu vienam veiksmui atlikt vienos eilutes uzrasymus.
On Tue, 18 Jan 2011 17:49:42 +0200, saimhe <oh.no@oh.my> wrote:
>> O siaip is esmes labai kreivai as cia viska darau ar cia taip ir turi
>> but? :)
>
> Išmoksi.
> Ekonomiškiau:
>
> k = strchr(tmp1, '.') - tmp1; //bus labai blogai, jei neras :)
> memcpy(tmp, tmp1, k);
> tmp[k] = '\0';
>
> strcspn skirta ieškoti vieno stringo kitame. Bet kuriuo atveju
> sąnaudos
> bus didesnės, net jei ieškomas stringas iš vieno simbolio.
> strncpy kopijuoja n arba iki '\0'. Gali būti, kad pirma susiranda tą
> '\0', pasirenka mažesnį n ir daro bloko kopijavimą, kuris daugelyje
> architektūrų yra daugiau mažiau optimizuotas registrų lygyje. Taip pat
> nėra
> garantijos, kad prikabins '\0'. Todėl memcpy plius priskyrimas padarys tą
> patį su mažesnėm sąnaudom.
>
>
> Tarpus pabaigoje galima nukąsti šitaip:
>
> for (k = strlen(tmp1) - 1; k >= 0; k--)
> if (tmp[k] != ' ')
> {
> tmp1[k + 1] = '\0';
> break;
> }
>
>
>> strcpy ( tmp,"" );
>
> tmp[0] = '\0';