Tema: blyn stringai
Autorius: Tomis
Data: 2011-01-18 17:04:17
Eilini n-taji karta suklumpu ant stringu ANSI C.
Nusibodo eit klaidu bandymu metodu.

Padekit zaliam ANSI C naujokui, uzrodykit koki gera tutoriala kaip su tais  
stringais teisingai elgtis.

Su pascal,basic,php... neteko susidurt su tokiom problemom kai reikia  
atlikinet elementarius veiksmus su stringais.

*********************
Cia vat kur si karta uzstrigau (jei kam idomu)


char tmp[100];
char tmp1[100];
int k;
....
ado_rs=ado_con->Execute(SQL);
strcpy(tmp1,ado_rs->Fields(3));
printf ("1-----#%s#\r\n",tmp1);
k=strcspn ( tmp1, ".");         //cia man reikia teksto dalies iki tasko
strncpy ( tmp, tmp1, k );
printf ("2-----#%s#\r\n",tmp);

strcpy(tmp1,ado_rs->Fields(1));
printf ("3-----#%s#\r\n",tmp1);
strcpy ( tmp,"" );
printf ("3.5-----#%s#\r\n",tmp);
k=strcspn ( tmp1, " ");          //cia man reikia nukast visus tarpus  
teksto gale.
strncpy ( tmp, tmp1, k );
printf ("4-----#%s#\r\n",tmp);
....

-------------
Outputas
-------------
1-----#ZZZ05101.Value                                                                                                                   
#
2-----#ZZZ05101#
3-----#m3/h                          #
3.5-----##
4-----#m3/h5101#      // vat kodel lieka 5101 ????

atrodo jog naudojant atskirus kintamuosius tmp1,tmp2,tmp3,...  
issispreaciau problema, bet noriu issiaskint ka ne taip darau siuo atveju.
kaip suprantu strncpy neprikabina gale \0? reik tuomet paciam prikabint.  
Ar gal kitaip sitas reikalas sprendziasi?