On Sat, 6 Jul 1996, Ground Zero Enterprises wrote: > > Would some nice person be nice enough to take some time out of thier busy > day to explain what the functionality of this is and how it works. I > have been trying to figure it out, but without knowing what it is doing, > I can't figure out how it's doing it and vice-versa :P > > char *delete_doubledollar(char *string) > { > char *read, *write; > > if ((write = strchr(string, '$')) == NULL) > return string; This part uses the strchr function to check the string for dollar signs. If there aren't any, then no action is necessary, so reutrn without modifying it. > read = write; Read and write are pointers to the string we're working on. They both start at the first character. > while (*read) When you come across a null in the string it means you've hit the end of the string, so break out of the loop. > if ((*(write++) = *(read++)) == '$') Copy the character pointed to by read into the one pointed to by write (yes they will normally point to the same place). If that character happens to be a $, then execute the next two lines. > if (*read == '$') > read++; If the last read was a dollar sign, check the next one. If it's also a dollar sign, skip it. > *write = '\0'; After going through the whole string, put a null at the end in case it's any shorter than it used to be, so the string will be terminated in the right place. > return string; > } Now that I look at this, it kinda seems like a triple dollar sign will turn into a double. I've never bothered to find out why we need to kill double dollars, so I don't know if it matters. *shrug* Sam
This archive was generated by hypermail 2b30 : 12/07/00 PST