Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int strdiff(char *a, char *b)
- {
- int i = 0;
- while (((a[i] != 13) && (a[i] != 0)) && ((b[i] != 13) && (b[i] != 0)) && (a[i] == b[i]))
- i++; //находим до какого символа строки одинаковы
- int n = i, k;
- char sum;
- if (a[n]!=b[n]) {
- sum = a[n] ^ b[n]; //(1^0=1; 1^1=0)
- i = 0;
- while (i < 8) { //проходим 8 раз
- if ((sum & (1<<i)) > 0) { //получаем отдельный символ
- k = i; //и если это "1" то символы при этом i различаются
- break;
- }
- i++;
- }
- n = n * 8 + k; //в каждом символе 8 бит => до различия (8 * n + k) битов
- return n;
- }
- else
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment