[2014-12-22] Challenge #194 [Easy] Destringification

Here's my messy C implementation with no extension:

include <stdio.h>

include <stdlib.h>

include <string.h>

void getCompleteEscape(char, char *, int); void getErrorsInString(char *); int getNumberOfBackSlashes(char *); char otherString[101]; char temp[101]; int main() { char string[101]; memset(string, '\0', 100); scanf("%[\n]100s", string); // printf("%s", string);

memset(otherString, '\0', 100); memset(temp, '\0', 100); int numberOfTimesToExecute = getNumberOfBackSlashes(string); int numberOfExecutions = 0; for(numberOfExecutions = 0; numberOfExecutions < numberOfTimesToExecute; numberOfExecutions++) { int count = 0; int ignoreNext = 0;

  for(count = 0; count < strlen(string); count++)
  {
     if(string[count] == '\\')
    {
       getCompleteEscape(string[count], string, count);
       ignoreNext = 1;
    }
     else if(ignoreNext == 0)
       {
     sprintf(temp,"%c", string[count]);
     strcat(otherString, temp);
       }
     else if(ignoreNext == 1)
    {
      ignoreNext = 0;     
    }

  }
strcpy(string,otherString);
printf("Stage %d %s\n",numberOfExecutions, otherString);
memset(temp,'\0', 100);
memset(otherString,'\0', 100);
numberOfTimesToExecute = getNumberOfBackSlashes(string);

} printf("%s", string); return 0; } void getErrorsInString(char * string) { if(string[0] != '\"' || string[strlen(string)]!='\"') { //puts("Error: Missing terminating or beginning quotation mark (\")."); } } void getCompleteEscape(char currentChar, char * string, int count) { char nextChar; if(count+1 < 100) { nextChar = string[count+1]; } else { puts("Error: String not long enough."); return; } switch(nextChar) { case 'n': sprintf(temp, "\n"); strcat(otherString, temp); break; case 'r': sprintf(temp, "\r"); strcat(otherString, temp); break; case '\"': sprintf(temp, "\""); strcat(otherString, temp); break; case '\': sprintf(temp, "\"); strcat(otherString, temp); break; default: printf("Error: Unescaped character."); break;

}

} int getNumberOfBackSlashes(char * string) { int count = 0; int number = 0; while(string[count] != '\n' && count < strlen(string)) { count++; if(string[count] == '\') { number++; } } return number; }

/r/dailyprogrammer Thread