Porównywanie różnie deklarowanych tablic znakowych

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?

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.

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ć.

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