I wrote this function that's supposed to do StringPadRight("Hello", 10, "0")
-> "Hello00000"
.
char *StringPadRight(char *string, int padded_len, char *pad) {
int len = (int) strlen(string);
if (len >= padded_len) {
return string;
}
int i;
for (i = 0; i < padded_len - len; i++) {
strcat(string, pad);
}
return string;
}
It works but has some weird side effects... some of the other variables get changed. How can I fix this?
It might be helpful to know that printf
does padding for you, using %-10s
as the format string will pad the input right in a field 10 characters long:
printf("|%-10s|", "Hello");
Will output:
|Hello |
In this case:
-
symbol means "Left align"10
means "Ten characters in field"s
means you are aligning a string.printf
style formatting is available in many languages and has plenty of references on the web. Here is one of many pages explaining the formatting flags. As usual WikiPedia's printf
page is of help too (mostly a history lesson of how widely printf
has spread).