 |

|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 09 16, 02:35. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Dviejų string'ų sulyginimas C kalboje
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
 |
 |
 |
Dviejų string'ų sulyginimas C kalboje |
Parašytas: 2008 07 10, 13:37 |
|
|
|
Yra du kintamiej. Vienas aprašytas taip: char pav[20]; Jis surenkamas iš atskirų simbolių, bet ne daugiau kaip 20.
Kitas yra aprašytas taip: *char pav2[3]={"pirmas", "antras", "trecias"};
Kodėl aprašyta būtent taip? Todėl, kad tik taip, man pavyko gauti norimą rezultatą.
Man reikia sulyginti string'ą esantį pav, su vienu iš string'ų, esančių pav2. Va čia ir prasideda neaiškumai... Bandžiau pasirašyti funkciją, kuri sulygintų tuos du string'us, bet niekaip nepavyksta todėl, kad neina perduoti parametrų (kintamųjų), amžinas tipų neatitikimas. Bandžiau panaudoti standartinę funkciją strcmp(char *str1, char *str2), tačiau irgi nieko neišeina - tipų neatitikimai. Įdomiausia, kad man šios funkcijos išvis niekaip panaudot nepavyko, net su specialiai tam aprašytais kintamaisiais - visada tas pats, tai vienoks, tai kitoks tipų neatitikimas. Nors juos aprašau taip, kaip nurodyta pačioje funkcijoje.
Klausimas būtų toks: kaip perduoti tokius kintamuosius funkcijai?
Dabar padariau tūpai - kai reikia sulyginti, paprasčiausiai perrenku kiekvieną simbolį ir sulyginu. Viskas veikia, bet jei tokių sulyginimų reikėtų labai daug, tai būtų visai ne kas... |
|
|
|
|
 |
 |
Dviejų string'ų sulyginimas C kalboje |
Parašytas: 2008 07 10, 22:55 |
|
|
|
išsisskirstyk viską po 8 bitus ir atskirai palygink |
|
_________________ nepamirškit, klysti žmogiška
privatas - privatiems klausimams
arch linux  |
|
|
|
 |
Dviejų string'ų sulyginimas C kalboje |
Parašytas: 2008 07 10, 23:51 |
|
|
|
viskas paprasta, klusimas tik kur tu tai naudoji, jei tai atmega procesorius tai tavo kintamasis char pav2[3] bus ko gero flash atmintyje o char pav[20]; ram atmintyje.
jei abu yra ram atmintyje tada viskas paprasta
strcmp(pav, pav2[x]); x tai kuria eilute imti jei nesupratai galima uzrasyti taip:
strcmp(&pav[0], pav2[x]);
jei vienas flash kitas ram tada tau reikia specialios funkcijos.
palyginancios ram su flash
tos funkcijos deklaracijoje turi nuroduti kad tai
Cmpf(char *x, flash char *y) {
} |
|
|
|
|
 |
Dviejų string'ų sulyginimas C kalboje |
Parašytas: 2008 07 11, 13:24 |
|
|
|
Išskirstyti viską bitais ir palygint turbūt siūlo asemblerio mėgėjas?
Abu kintamieji RAM'e. Digix pavyzdys veikia. Iš tikro tai aš čia pats gerokai apsižioplinau. Per daug prisižaidžiau su pointer'iais, todėl ir tie tipų neatitikimai...  |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Fun football drills
Football Training Equipment,
Defending drills football,
Kids football training kit |
|

|
 |