Advertisement
Guest User

Untitled

a guest
Jul 19th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <string>
  5. #include <stdlib.h>
  6.  
  7. #define MAX_NORMALIZE_STRING_LEN 1024
  8. int main(){
  9.     // Plus 1 for end of string
  10.     char buf[MAX_NORMALIZE_STRING_LEN + 1];
  11.     // Longer because of adding spaces after ['.', ';', ',']
  12.     char ret[MAX_NORMALIZE_STRING_LEN*3/2 + 1];
  13.    
  14.     // Clear screen
  15.     system("cls");
  16.     printf("\r\n>>Input String: ");
  17.     fflush(stdin);
  18.     fgets(buf, MAX_NORMALIZE_STRING_LEN, stdin);
  19.     int len = strlen(buf);
  20.     int pos = 0;
  21.     for(int i =0; i < len; i ++){
  22.         // Process all characters exclude [' ', ';' ',', '.']
  23.         if (buf[i] != ' ' && buf[i] != ',' && buf[i] != '.' && buf[i] != ';')
  24.         {          
  25.             ret[pos] = buf[i];
  26.             pos += 1;
  27.         }
  28.         else if ((i + 1) < len && pos > 0){
  29.             /*
  30.                 Character i is space, add this to ret if:
  31.                 + Next character is not in [' ', ';' ',', '.']
  32.                 + ret[pos - 1] is not space
  33.             */
  34.             if (buf[i] == ' ')
  35.             {
  36.                 if(buf[i + 1] != ' ' && buf[i + 1] != ',' && buf[i + 1] != '.' && buf[i + 1] != ';'){
  37.                     if (ret[pos - 1] != ' ')
  38.                     {
  39.                         ret[pos] = buf[i];
  40.                         pos += 1;
  41.                     }                  
  42.                 }
  43.             }
  44.             /*
  45.                 Character i is in [';' ',', '.'], add this to ret if ret[pos - 1] not in [' ', ';' ',', '.']
  46.             */
  47.             else if (buf[i] == '.' || buf[i] == ';' || buf[i] == ',')
  48.             {
  49.                 if (ret[pos - 1] != ',' && ret[pos - 1] != '.' && ret[pos - 1] != ';' && ret[pos - 1] != ' ')
  50.                 {
  51.                     ret[pos] = buf[i];
  52.                     pos += 1;
  53.                     ret[pos] = ' ';
  54.                     pos += 1;
  55.                 }                  
  56.             }
  57.         }
  58.     }
  59.     ret[pos] = '\0';
  60.     printf("\r\n>> Ouput String: %s", ret);
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement