Tömbfeltöltés speciális karakterekkel. Mi a hiba?
Sziasztok! Az a feladatom, hogy töltsek fel egy tömböt olyan karakterekkel, amelyeknek az első és a negyedik bitjeik nem egyeznek meg. Amit erre írtam:
#include <stdio.h>
#include <stdlib.h>
char cbe()
{
char s[99];
gets(s);
return s[0];
}
void beker(char *a)
{
int i=0, maszk=0b1010;
char c;
printf("Toltse fel a 15 elemu tombot.\n");
while(i<15)
{
printf("%d. karakter: ", i+1);
cbe(c);
if(c & maszk == 0)
{
*(a+i)=c;
i++;
}
else
{
printf("Nem megfelelo karakter.\n");
}
}
}
int main()
{
char tomb[15];
beker(tomb);
return 0;
}
akármilyen karaktert ütök be, az else függvény fut le.. valami a maszkolás környékén lehet rossz, de nem tudok rájönni a megoldásra.. Valaki hozzáértő átfutná, hogy mi a hiba, és ötletelne egy keveset, hogy hogyan oldaná meg? Köszi előre is!
char ch; //bekérsz ebbe valamit
char maszk1 = 1 << 0;
char maszk2 = 1 << 3
if ((ch & maszk1) ^ (ch & maszk2))
{
//1. és 4. bitje nem egyezik meg
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!