fork(4) download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. void rempos(char str[], int pos);
  6. void remchars(char [], char c);
  7. int getcharpos(char str[], char c);
  8. void remcnks(char str[], char cnk[]);
  9. void replchars(char str[], char c1, char c2);
  10. void replcnks(char str[], char cnk1[], char cnk2[]);
  11. void reverse(char str[]);
  12.  
  13. int main(void) {
  14.  
  15. // your code goes here
  16. return 0;
  17. }
  18.  
  19. //remove character on position pos from a string
  20. void rempos(char str1[], int pos)
  21. {
  22. int len=strlen(str1);
  23. int diff=len-pos;
  24. memmove(str1+pos, str1+pos+1, diff);
  25. }
  26.  
  27. //remove specified characters from a string
  28. void remchars(char str[], char c)
  29. {
  30. char *pos;
  31. while(pos = strchr(str,c))
  32. memmove(pos, pos + 1, strlen(pos));
  33. }
  34.  
  35. // returns first occurrence of the character in a string
  36. int getcharpos(char str[], char c)
  37. {
  38. char cstr[2] = {c , '\0'}; // convert char to string
  39. int pos = strcspn(str, cstr);
  40. if( pos == strlen(str))
  41. return 0; // returns zero if not found
  42. else
  43. return ++pos; // begins with 0, so add 1 to position
  44. }
  45.  
  46. //remove specified chunks from a string
  47. void remcnks(char str[], char cnk[])
  48. {
  49. char *pos;
  50. int clen = strlen(cnk);
  51. while(pos = strstr(str, cnk))
  52. memmove(pos, pos + clen, strlen(pos) - clen + 1);
  53. }
  54.  
  55. //replace specified characters in a string
  56. void replchars(char str[], char c1, char c2)
  57. {
  58. char *pos;
  59. while(pos = strchr(str, c1))
  60. *pos = c2;
  61. }
  62.  
  63. //replace specified chunks in a string (size-independent, just remember about memory)
  64. void replcnks(char str[], char cnk1[], char cnk2[])
  65. {
  66. char *pos;
  67. int clen1 = strlen(cnk1), clen2 = strlen(cnk2);
  68. while(pos = strstr(str, cnk1))
  69. {
  70. memmove(pos + clen2, pos + clen1, strlen(pos) - clen1 + 1);
  71. memcpy(pos, cnk2, clen2);
  72. }
  73. }
  74.  
  75. //reverse a string
  76. void reverse(char str[])
  77. {
  78. int i;
  79. int len = strlen(str) - 1;
  80. int mid = (len % 2) ? (len / 2) : ((len + 1) / 2);
  81. for(i = 0; i <= mid; ++i)
  82. {
  83. char buf = str[i];
  84. str[i] = str[len - i];
  85. str[len - i] = buf;
  86. }
  87. }
  88.  
Success #stdin #stdout 0s 9296KB
stdin
Standard input is empty
stdout
Standard output is empty