On Sat, 28 Mar 1998, Judson Powers wrote:
->short dist = 40 - (strlen(theString));
->short count;
->char* outspc = malloc(dist);
->for (count = 0; count < dist; count++)
-> outspc[count] = ' ';
->printf("%s", outspc);
That's not really centered, it's off because you only subtract the
length of the string from the center. This means that if you were
centering a 4 character long string ("this") in 20 spaces, you'd get
("dist = 10-4 = 6"), " this ". You probably want,
dist = (int) ((width/2) - (strlen(theString) / 2));
which, again using 20 instead of 80 (and hence, 10 instead of 40 after
dividing by two in the formula), you'd get, " this ".
The number of spaces for the right side should be: "width - strlen -
padding". This handles cases of lopsided spacing (i.e., when there
has to be more spaces on the right side than the left [or vice
versa]).
-dak
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST