Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- void reverse(char* str) {
- int forward = 0;
- int backward = strlen(str) - 1;
- while (forward < backward) {
- char temp = str[forward];
- str[forward++] = str[backward];
- str[backward--] = temp;
- }
- }
- void right_align(char *str) {
- reverse(str);
- while (*str == ' ') {
- str += 1;
- }
- reverse(str);
- }
- void replace_spaces(char *str, size_t length) {
- const char * end = str + length;
- const size_t token_length = strlen("%20");
- char * out = str;
- right_align(str);
- while (*str == ' ') {
- str += 1;
- }
- while (str < end) {
- if (*str != ' ') {
- *out = *str;
- out += 1;
- } else {
- strncpy(out, "%20", token_length);
- out += token_length;
- }
- str += 1;
- }
- }
- int main(int argc, char *argv[]) {
- if (argc == 3) {
- replace_spaces(argv[1], atoi(argv[2]));
- printf("%s\n", argv[1]);
- } else {
- printf("usage: %s <string> <length>\n", argv[0]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement