Hi, my problem is I want to read input from the keyboard and parse it into two separate int variables. I'm using a comma a delimeter and it works fine if I my entry is in the form,
##,##
but I want to be
,##
to imply 0,##
Basically I'm scrolling through numbers starting at different places. What's driving me bonkers is everything works except for the ,## entries. What, drives me doubly bonkers is that I wrote the code in another program and pasted it into this one. All the variables are wired up and it even works for the ##,## entries. I;ve spent hours on this and am just not sophisticated enough to see the problem
Code:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char divs[1024];
int propDivs[1024];
int i;
int sum=0;
char input[1024];
int tot=0;
int tot2 = 0;
int mlt = 10;
char num1[100];
char num2[100];
char comma=0;
int com = 0;
int sum1=0;
int sum2=0;
int count=0;
int quitCheck = 0;
char help[4];
char quit[4];
int sumprime=0;
int sumperfect=0;
int t1 = 0;
int t2 = 0;
int pfTog = 0;
int apTog = 0;
int prTog = 0;
int checkQuit =0 ;
while(checkQuit == 0){
printf("Enter a number: ");
fgets(input, sizeof(input), stdin);
input[strlen(input)-1] = '\0';
if((input[0]>= 48 && input[0]<=57)|| input[0] == ',' || input[0] == 'h' || input[0] == 'H'|| input[0] == 'r' || input[0] == 'R'||input[0] == 'c' || input[0] == 'C' ||input[0] == 'q' || input[0] == 'Q' || (input[0] >= 48 && input[0] <= 57)){
//*************************************************************************************
//***************QUIT QUIT QUIT QUIT QUIT QUIT QUIT************************************
//*************************************************************************************
if(input[0] == 'q' || input[0] == 'Q'){
for(i=0; i<4; i++){
if(input[i] >= 65 && input[i] <= 90){
quit[i] = input[i]+32;
}else
quit[i] = input[i];
}
quit[4] = '\0';
if(strcmp(quit,"quit")==0){
printf("\n***Session Terminated***\n");
checkQuit = 1;
}else{
printf("\nInvalid Entry\n");
}
} else
//PARSE NUMBERS#####################################################
for(i=0;i<strlen(num2);i++){
num2[i]='\0';
}
if(input[0] == ','){
num1[0] = '0';
num1[1] = '\0';
for(i=1; i<strlen(input); i++){
num2[i]=input[i+2];
}
for(i=0; i<strlen(num1); i++){
sum1 = sum1*10+num1[i]-'0';
}
for(i=0; i<strlen(num2); i++){
sum2 = sum2*10+num2[i]-'0';
}
printf("\nSum1 = %s\n",num1);
printf("\nSum2 = %s\n",num2);
printf("\nend comma\n");
//**********************************
}
if(input[0]>= 48 && input[0]<=57){
for(i=0; i<strlen(input); i++){
if(input[i] == ','){
comma = i;
}
}
for(i=0; i<comma; i++){
num1[i] = input[i];
num1[i+1] = '\0';
}
for(i=0; i<strlen(input); i++){
num2[i] = input[i+comma+1];
num2[i+1] = '\0';
}
sum2=0;
sum1=0;
for(i=0; i<strlen(num1); i++){
sum1 = sum1*10+num1[i]-'0';
}
for(i=0; i<strlen(num2); i++){
sum2 = sum2*10+num2[i]-'0';
}
printf("\nSum1 = %d\n",sum1);
printf("\nSum2 = %d\n",sum2);
printf("\nend number\n");
}else// end input
printf("\nERROR\n");
}//end last for
system("PAUSE"); }//end while
}//end main