Porównywanie różnie deklarowanych tablic znakowych

2015-02-09 17:36
0

Panowie i Panie.
Czy tablica tekstowa

char tab1="abcd"; 

jest równoważna tablicy:

char tab2[4]={'a','b','c','d'};

i spełniony będzie taki warunek:

if(tab1==tab2);

?

Kolejna sprawa. Czy wpisując do tablicy wartości liczbowe odpowiadające poszczególnym znakom w kodzie ascii:

tab3[0]=97;
tab3[1]=98;
tab3[2]=99;
tab3[3]=100;

również otrzymam ekwiwalentną wartość tablicy tab1?

Pozostało 580 znaków

2015-02-09 17:40
0
 char tab1="abcd"; 

To się nie skompiluje.
Poza tym używając operatora == porównujesz adresy stringów. Do porównywania stringów używamy metody strcmp. Poza tym tab2 nie jest null-terminated.

edytowany 2x, ostatnio: KazikWielki, 2015-02-09 17:53
o zgrozo się kompiluje, ale w C podobno prawie wszystko się kompiluje - twonek 2015-02-09 17:57

Pozostało 580 znaków

2015-02-09 17:50
0
qwee napisał(a):

Czy tablica tekstowa

char tab1="abcd"; 

Prędzej

const char* tab1 = "abcd";

i spełniony będzie taki warunek:

if(tab1==tab2);

?
Nie, bo tak się nie porównuje tablic. Trzeba porównać odpowiadające sobie elementy.

Kolejna sprawa. Czy wpisując do tablicy wartości liczbowe odpowiadające poszczególnym znakom w kodzie ascii:
również otrzymam ekwiwalentną wartość tablicy tab1?
Tak, ale nie należy tak pisać.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0