Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. void reverse(char* str) {
  6. int forward = 0;
  7. int backward = strlen(str) - 1;
  8.  
  9. while (forward < backward) {
  10. char temp = str[forward];
  11. str[forward++] = str[backward];
  12. str[backward--] = temp;
  13. }
  14. }
  15.  
  16. void right_align(char *str) {
  17. reverse(str);
  18.  
  19. while (*str == ' ') {
  20. str += 1;
  21. }
  22.  
  23. reverse(str);
  24. }
  25.  
  26. void replace_spaces(char *str, size_t length) {
  27. const char * end = str + length;
  28. const size_t token_length = strlen("%20");
  29. char * out = str;
  30.  
  31. right_align(str);
  32.  
  33. while (*str == ' ') {
  34. str += 1;
  35. }
  36.  
  37. while (str < end) {
  38. if (*str != ' ') {
  39. *out = *str;
  40. out += 1;
  41. } else {
  42. strncpy(out, "%20", token_length);
  43. out += token_length;
  44. }
  45. str += 1;
  46. }
  47. }
  48.  
  49. int main(int argc, char *argv[]) {
  50. if (argc == 3) {
  51. replace_spaces(argv[1], atoi(argv[2]));
  52. printf("%s\n", argv[1]);
  53. } else {
  54. printf("usage: %s <string> <length>\n", argv[0]);
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement