Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2005-02-21 19:25:58

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Sprawdzanie poprawnosci w C++

a wiec powiedzmy jest taka sytuacja mam zmienna char do niej przypisana jakas wartosc ktora powinna miec postac np:
00:30:40:50:2F:16
(mac) ale jesli bedzi nie prawidlowa np bedzie wygladala tak #00:30:40:50:2F:16 lub np 0O:30:40:50:2F:16 lub 000:30:40:50:2F:16
ma ktos moze pomysl jak sprawdzac poprawnosc zmiennej

PsS> zaczynam dopiero przygode z tym jezykiem programowania a wiec prosze o lopatologiczne wyjasnienia

Offline

 

#2  2005-02-22 22:33:37

  rogos - Moderator

rogos
Moderator
Zarejestrowany: 2005-02-12

Re: Sprawdzanie poprawnosci w C++

Zchecia bym ci pomogl aby sie odwdzieczyc za twoja pomoc ale niestety wykracza to poza moje aktualne mozliwosci :P


http://img88.imageshack.us/img88/1856/imageslg0.png

Offline

 

#3  2005-02-24 14:58:52

  Paciocha - Użytkownik

Paciocha
Użytkownik
Skąd: z ulicy Ogrodowej
Zarejestrowany: 2004-05-08

Re: Sprawdzanie poprawnosci w C++

a gdyby tak wyswietlic na ekranie wartosc tej zmiennej i popatrzec czy ona ma prawidlowy "wyglad" ?
cout>>"n zmienna mac (char) = "<<nazw2a zmiennej;


No i nic nie zadekowaliśmy
Asus EeePC 1000H
analfabetyzm wsteczny
"Strzępy zbłąkanych wspomnień scementowanych śmiercią" - OMamo

Offline

 

#4  2005-02-24 15:38:57

  Kowall_ptk - wieczny student

Kowall_ptk
wieczny student
Skąd: z nienacka :)
Zarejestrowany: 2005-02-17

Re: Sprawdzanie poprawnosci w C++

Ja bym to rozwiązał w ten sposób, że sprawdzałbym, co jest na kolejnych miejscach w tej zmiennej i porównywał z wzorcem. oczywiście wszystko w pentelce i na if-ach.


W Linuksie się da, tylko trzeba wiedzieć jak!

Offline

 

#5  2005-02-24 19:47:17

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: Sprawdzanie poprawnosci w C++

Tak wiem tylko C jest ubogie w sprawdzanie poprawnosci ciagow przynajmniej troche to bardziej zagmatwane jest niz w innych jezykach :]

Offline

 

#6  2005-02-25 09:34:45

  rybek - Członek DUG

rybek
Członek DUG
Zarejestrowany: 2004-04-20

Re: Sprawdzanie poprawnosci w C++

polecam funkcje isxdigit() z biblioteki ctype.h. sprawdza poszczegolne chare czy sa one of 0 1 2 3 4 5 6 7 8 9 a b c  d e f A B C D E F. tu chyba malutka petelka wystarczy i po krzyku.


Linux Registered User: #348830

In a World without Walls and Fences,
who needs Windows and Gates?

Offline

 

#7  2005-02-25 16:08:31

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Sprawdzanie poprawnosci w C++

No teraz mając taką funkcje to już prosto:

Kod:

#include<string.h>
#include<stdio.h>
#include<ctype.h>

main(void)
{
char mac_tab[17], *mac="12:34:56:78:90:AB";
int i;

strcpy(mac_tab,mac);

if(strlen(mac) == 17)
{
    for(i = 0; i < 17; i++)
    {
        if((i != 2) && (i != 5) && (i != 8) && (i != 11) && (i != 14))
        {
            if(isxdigit(mac_tab[i]) == 0)
            {
                printf("n Nieprawidlowy znak! %d n", i);
                break;
            }
        }
        else
        {
            if(mac_tab[i] != ':')
            {
                printf("n Znak ':' w zlym miejscu! %d n", i);
                break;
            }
        }
    }
}
else
{
    printf("n Zla dlugosc! n");
}

return 0;
}



Przerobiłem BieXi ten mój stary przykład, ale dalej nie wiem czemu tamto strstr nie działało. Jakaś tajemnica :) Możnaby też napisać funkcje która robi co powyżej, ale w zalezności czy są błedy czy nie zwraca 1 lub 0. Bo kwestia jakie to błędy chyba nie jest ważna.

Offline

 

#8  2005-02-25 23:27:17

  BaB - Członek DUG

BaB
Członek DUG
Skąd: Krapkowice
Zarejestrowany: 2004-09-09

Re: Sprawdzanie poprawnosci w C++


char mac_tab[17], *mac="12:34:56:78:90:AB";

to napewno tylko literowka ale z tego co pamiętam to wskaźnik też musi mieć określony typ więc:

Kod:

 char *mac="12:34:56:78:90:AB"

Zarejestrowany użytkownik Linuksa #361563

Offline

 

#9  2005-02-26 12:16:16

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Sprawdzanie poprawnosci w C++

Ten wskaźnik ma określony typ, no chyba można wymieniać zmienne danego typu po przecinku. Wszystko jedno czy tak jak ja napisałem, czy tak jak Ty. Wszystkie zmienne danego typu można jednak zadeklarowac w jednej linii po przecinku, tak wygodniej. Zresztą program sie kompiluje i działa więc chyba jest ok.

Pozdro

Offline

 

#10  2005-02-27 00:49:51

  BaB - Członek DUG

BaB
Członek DUG
Skąd: Krapkowice
Zarejestrowany: 2004-09-09

Re: Sprawdzanie poprawnosci w C++

ok zwracam honor.

pozdrawiam


Zarejestrowany użytkownik Linuksa #361563

Offline

 

#11  2005-11-05 21:19:04

  gocom - Nowy użytkownik

gocom
Nowy użytkownik
Zarejestrowany: 2005-11-05

Re: Sprawdzanie poprawnosci w C++

OKi sądze rze to przeterminowana wiadomość, ale jesli istnieje taka potrzeba sądze, że napisał bym szybszy kod niż ten powyrzej i bez tylu bibliotek.

Najprawdopodobniej jest to nie aktualne, ale co tam. gocom@o2.pl :>

Offline

 

#12  2005-11-12 19:32:46

  kali - Członek DUG

kali
Członek DUG
Skąd: Wrocław
Zarejestrowany: 2005-06-19
Serwis

Re: Sprawdzanie poprawnosci w C++

Ja widzę wykorzystanie tylko jednej biblioteki - libc ;)


Intelligence is like a river: the deeper it is, the less noise it makes

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)