Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX_STR_NUM 64
  6. #define MAX_STR_LEN 49
  7.  
  8. char* nextLine() {
  9. char* result;
  10. char* string = malloc(sizeof(char)*(MAX_STR_LEN));
  11. int position = 0;
  12. do
  13. {
  14. string[position] = getchar();
  15. position++;
  16. } while ((position < MAX_STR_LEN) && (string[position-1] != '\n'));
  17. string[position-1] = '\0';
  18. result = malloc(sizeof(char)*(position+1));
  19. strcpy(result,string);
  20. free(string);
  21. return result;
  22. }
  23.  
  24. void trimLeading(char *string) {
  25. int length = strlen(string);
  26. int i;
  27. for(i = 0; string[i] == ' '; i++) {}
  28. if(i != 0){
  29. for(int j = i; j < length; j++){
  30. string[j-i] = string[j];
  31. string[j] = ' ';
  32. }
  33. }
  34. }
  35.  
  36. void trimMiddle(char *string) {
  37. int length = strlen(string);
  38. char* temp = malloc(sizeof(char)*length);
  39. int counter = 0;
  40. for(int i=0; i<length; i++){
  41. if(string[i] != ' '){
  42. temp[counter] = string[i];
  43. counter++;
  44. } else if(string[i+1] != ' ') {
  45. temp[counter] = string[i];
  46. counter++;
  47. }
  48. }
  49. strcpy(string,temp);
  50. free(temp);
  51. }
  52.  
  53. void trimTrailing(char *string) {
  54. int length = strlen(string);
  55. if(length != 0){
  56. for(int i = length-1; string[i] == ' '; i--){
  57. string[i] = '\0';
  58. }
  59. }
  60. }
  61.  
  62. void trim(char *string) {
  63. trimMiddle(string);
  64. trimLeading(string);
  65. trimTrailing(string);
  66. }
  67.  
  68. int main(){
  69. char *pointers[MAX_STR_NUM];
  70. char *string = malloc(sizeof(char)*MAX_STR_LEN);
  71. int counter = 0;
  72. do{
  73. printf("Enter a string: ");
  74. string = nextLine();
  75. trim(string);
  76. pointers[counter] = malloc(sizeof(char)*strlen(string));
  77. strcpy(pointers[counter],string);
  78. printf("User entered \"");
  79. printf(pointers[counter]);
  80. printf("\"\n");
  81. counter++;
  82. } while(counter < MAX_STR_NUM && strlen(string) != 0);
  83. free(string);
  84. return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement