Sponsored Content
Top Forums Programming A trivial XOR doubt in a program Post 302247279 by royalibrahim on Wednesday 15th of October 2008 10:09:49 AM
Old 10-15-2008
A trivial XOR doubt in a program

Hi,

I am trying to reverse a string using the following program utilizing the Exclusive OR bit operation:

Code:
int main() {
   char str[] = "Quraish";
   char *p = str, temp;
   char *q = str + strlen(str) - 1;
   while ( p != q ) {
      if (*p != *q) {
         *p ^= *q; *q ^= *p; *p ^= *q;
      }
      p++; q--;
   }
   printf("%s \n", str);
}

The above code works perfectly alright, but if I change the line
Code:
*p ^= *q; *q ^= *p; *p ^= *q;

to
Code:
*p ^= *q ^= *p ^= *q;

(I am trying to do swapping inline)
it prints an empty string. Could anyone tell me why this behaviour is?
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

trivial awk question

i posted a reply the other day and needed an answer to this question while i was clarifyiing a few matter.. "how to compare to date variable in string format without having to compare word for word".. my reply was to try to use awk to compare the strings.. I wasn't quite sure if i remembered how... (2 Replies)
Discussion started by: moxxx68
2 Replies

2. Programming

resetting counter using bitwise XOR

Hi ! How to reset a variable to 0 after a reset value, say 10 using bitwise XOR. For example, int cnt=0; if(cnt<10) cnt++; else cnt = 0; How can we achieve this by using XOR only. thanks, (1 Reply)
Discussion started by: mrgubbala
1 Replies

3. Shell Programming and Scripting

xor 2 values in ksh?

i have to xor two variables in ksh. how to do that? tia, DN2 (5 Replies)
Discussion started by: DukeNuke2
5 Replies

4. Shell Programming and Scripting

Doubt in this trivial awk code

Hi, What is the difference in the following two awk one-liners? awk -F, '{s++} END {if (s == 1 && $4 > "09:10:00") {print $2, $4}}' f1 awk -F, '{s++} s == 1 && $4 > "09:10:00" {print $2, $4}' f1 Even though, all the 2nd column values have duplicate records, the first code does not give any... (4 Replies)
Discussion started by: royalibrahim
4 Replies

5. Shell Programming and Scripting

Trivial perl doubt about FILE

Hi, In the following perl code: #!/usr/bin/perl -w if (open(FILE, "< in_file")) { while (<FILE>) { chomp($_); if ($_ =~ /patt$/) { my $f = (split(" ", $_)); print "$f\n"; } } close FILE; } Why changing the "FILE" as... (4 Replies)
Discussion started by: royalibrahim
4 Replies

6. Programming

Trivial doubt about C function pointer

Hi, In the below C code, #include <stdio.h> void print() { printf("Hello\n"); } int main() { void (*f)() = (void (*)()) print; f(); (*f)(); } I wonder, how the syntaxes "f()" and "(*f)()" are treated as same without any error? Is this an improvement or ANSI/ISO... (1 Reply)
Discussion started by: royalibrahim
1 Replies

7. UNIX for Dummies Questions & Answers

XOR between strings

I am aware of truth table for XOR between binary values . Out of curious in would like to know how XOR works between 2 strings which contain alphabets . For example A ^ B How it works internally? Please help me to understand this Thanks (1 Reply)
Discussion started by: pandeesh
1 Replies

8. FAQ Submission Queue

Analysis in bitwise XOR

The purpose of this article is revealing the unrevealed parts of the bitwise XOR. As we aware, the truth table for the XOR operator is : A B A^B 0 0 0 0 1 1 1 0 1 1 1 0 For example , 1^2 will be calculated as given below: First the operands... (1 Reply)
Discussion started by: pandeesh
1 Replies

9. UNIX for Dummies Questions & Answers

XOR two strings

hi, i am new to shell programming, can u please tell me how to perform XOr operation of two strings. i tried to do xor using ^symbol but this doesnt work. help me with this Thanks (12 Replies)
Discussion started by: anil_uvce
12 Replies
TRAYER(1)						      General Commands Manual							 TRAYER(1)

NAME
trayer - a lightweight GTK2-based systray for UNIX desktop SYNOPSIS
trayer -h trayer -v trayer [--edge left|right|top|bottom|none] [--align left|right|center] [--margin <size>] [--widthtype request|pixel|percent ] [--width <size>] [--heighttype <pixel>] [--height <size>] [--SetDockType true|false] [--SetPartialStrut true|false] [--transparent true|false] [--alpha <value>] [--tint <color>] [--distance <length>] [--distancefrom left|right|top|bottom|none] [--expand true|false] [--padding <size>] DESCRIPTION
trayer is a small program designed to provide system tray similar to these in GNOME / KDE desktop environments for window managers which does not support that function. It is similar to other applications such as peksystray and docker. System tray is a place, where many applications put their icons, so they are always visible. Such icons may present status of an applica- tion and allow user to control the program. trayer's code was extracted from fbpanel application, you can find more about it on its homepage: http://fbpanel.sourceforge.net/. OPTIONS
This programs follow the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. --help -h Show summary of options and exit. --version -v Show version of program and exit. --edge left|right|top|bottom|none Specifies a screen edge to use. --align left|center|right Specifies an align of the icons. --margin <size> Specifies length of margin (in pixels) --widthtype request|pixel|percent Specifies method of calculating trayer's window width: request Follow application icons' size, so trayer may shrink or expand dynamically. pixel Set a fixed size, given with --width option in pixels. percent Set a fixed size, given with --width option in percentage of a length of screen edge. --width <size> Width of trayer's window. Ignored when --widthtype is set to request. --heighttype request|pixel|percent Specifies method of calculating trayer's window height: request Follow application icons' size, so trayer may shrink or expand dynamically. pixel Set a fixed size, given with --height option in pixels. percent Set a fixed size, given with --height option in percentage of a length of screen edge. --height <size> Height of trayer's window. Ignored when --heighttype is set to request. --SetDockType true|false Identify panel window type as dock. --SetPartialStrut true|false Reserve panel space so that it will not be covered by maximized windows. --transparent true|false Use transparency. --alpha <value> Percentage of transparency (0 - nontransparent, 255 - fully transparent) --tint <color> Color used to tint transparent background. Color is given as a 24-bit C hexadecimal integer, for example: 0xff0000 is red, 0xff8800 is orange and 0x00ff00 is green. --distance <length> Specifies distance between trayer's window and screen edge (in pixels) --distancefrom <edge> Specifies which edge to calculate distance from, see above. --expand true|false Specifies whether trayer may accommodate extra space when there is too much icons. --padding <size> Extra space between icons and trayer window's border. --monitor NUM|STRING Define the monitor on which you like trayer to appear, number of zero to number of monitors minus one, or the string "primary" are valid. The default value is 0. SEE ALSO
fbpanel(1) AUTHORS
Anatoly Asviyan <aanatoly@users.sf.net> - fbpanel Rafal Bisingier <ravbc@man.poznan.pl> Maciej Delmanowski <harnir@users.berlios.de> Grzegorz Nieweglowski <hoppke@dobremiasto.net> Thomas Rydzynski This manual page was written by Tomasz Melcer <liori@interia.pl>. FVWM-Crystal Feb 14, 2005 TRAYER(1)
All times are GMT -4. The time now is 03:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy