I'm a beginner in programming.
I am performing an exercise in which I must determine whether a string is a number, whereas the user can write anything as input. Then I created the function below. I can only use the standard library. I'm trying to use as few variables as possible.
Could anyone evaluate?
int isNumber(char input[], int input_size){
int i;
//Elimina cadeia com caracteres não numéricos
for(i = 1; i < input_size; i++)
{
if(input[i-1] != '0' && input[i-1] != '1' &&
input[i-1] != '2' && input[i-1] != '3' &&
input[i-1] != '4' && input[i-1] != '5' &&
input[i-1] != '6' && input[i-1] != '7' &&
input[i-1] != '8' && input[i-1] != '9' &&
input[i-1] != '.' && input[i-1] != ',' &&
input[i-1] != ' ' && input[i-1] != '-' &&
input[i-1] != 'int isNumber(char input[], int input_size){
int i;
//Elimina cadeia com caracteres não numéricos
for(i = 1; i < input_size; i++)
{
if(input[i-1] != '0' && input[i-1] != '1' &&
input[i-1] != '2' && input[i-1] != '3' &&
input[i-1] != '4' && input[i-1] != '5' &&
input[i-1] != '6' && input[i-1] != '7' &&
input[i-1] != '8' && input[i-1] != '9' &&
input[i-1] != '.' && input[i-1] != ',' &&
input[i-1] != ' ' && input[i-1] != '-' &&
input[i-1] != '%pre%'){
return 0;
}
}
//Elimina cadeia que só possui espaços e caracteres nulos
for(i = 1; i < input_size; i++){
if(input[i-1] != ' ' && input[i-1] != '%pre%'){
break;
}
}
if(i >= input_size){
return 0;
}
//Elimina cadeia com mais de um ponto ou vírgula
for(i = 1; i < input_size; i++){
if(input[i-1] == '.' || input[i-1] == ','){
for(i++; i < input_size; i++){
if(input[i-1] == '.' || input[i-1] == ','){
return 0;
}
}
break;
}
}
//Elimina cadeia com mais de um sinal de menos
for(i = 1; i < input_size; i++){
if(input[i-1] == '-'){
for(i++; i < input_size; i++){
if(input[i-1] == '-'){
return 0;
}
}
break;
}
}
//Elimina cadeia com dois números separados por espaço
for(i = 2; i < input_size; i++){
if(input[i-2] != ' ' &&
input[i-2] != '%pre%' &&
input[i-1] == ' ' &&
input[i] != ' ' &&
input[i] != '%pre%'){
return 0;
}
}
//Elimina cadeia com dois números separados por sinal de menos
for(i = 2; i < input_size; i++){
if(input[i-2] != ' ' &&
input[i-2] != '%pre%' &&
input[i-1] == '-' &&
input[i] != ' ' &&
input[i] != '%pre%'){
return 0;
}
}
//Elimina cadeia terminada em sinal de menos
for(i = input_size; i > 0; i--){
if(input[i-0] != '%pre%' && input[i-0] != ' ' && input[i-0] == '-'){
return 0;
}
}
//Elimina cadeia que somente tem ponto, vírgula ou sinal de menos
if((input[0] == '.' || input[0] == ',' || input[0] == '-') && (input[1] == ' ' || input[1] == '%pre%')){
return 0;
}
for(i = 2; i < input_size; i++){
if((input[i-2] == ' ' || input[i-2] == '%pre%') &&
(input[i-1] == '.' || input[i-1] == ',' || input[i-1] == '-') &&
(input[i] == ' ' || input[i] == '%pre%')){
return 0;
}
}
return 1;
}
'){
return 0;
}
}
//Elimina cadeia que só possui espaços e caracteres nulos
for(i = 1; i < input_size; i++){
if(input[i-1] != ' ' && input[i-1] != '%pre%'){
break;
}
}
if(i >= input_size){
return 0;
}
//Elimina cadeia com mais de um ponto ou vírgula
for(i = 1; i < input_size; i++){
if(input[i-1] == '.' || input[i-1] == ','){
for(i++; i < input_size; i++){
if(input[i-1] == '.' || input[i-1] == ','){
return 0;
}
}
break;
}
}
//Elimina cadeia com mais de um sinal de menos
for(i = 1; i < input_size; i++){
if(input[i-1] == '-'){
for(i++; i < input_size; i++){
if(input[i-1] == '-'){
return 0;
}
}
break;
}
}
//Elimina cadeia com dois números separados por espaço
for(i = 2; i < input_size; i++){
if(input[i-2] != ' ' &&
input[i-2] != '%pre%' &&
input[i-1] == ' ' &&
input[i] != ' ' &&
input[i] != '%pre%'){
return 0;
}
}
//Elimina cadeia com dois números separados por sinal de menos
for(i = 2; i < input_size; i++){
if(input[i-2] != ' ' &&
input[i-2] != '%pre%' &&
input[i-1] == '-' &&
input[i] != ' ' &&
input[i] != '%pre%'){
return 0;
}
}
//Elimina cadeia terminada em sinal de menos
for(i = input_size; i > 0; i--){
if(input[i-0] != '%pre%' && input[i-0] != ' ' && input[i-0] == '-'){
return 0;
}
}
//Elimina cadeia que somente tem ponto, vírgula ou sinal de menos
if((input[0] == '.' || input[0] == ',' || input[0] == '-') && (input[1] == ' ' || input[1] == '%pre%')){
return 0;
}
for(i = 2; i < input_size; i++){
if((input[i-2] == ' ' || input[i-2] == '%pre%') &&
(input[i-1] == '.' || input[i-1] == ',' || input[i-1] == '-') &&
(input[i] == ' ' || input[i] == '%pre%')){
return 0;
}
}
return 1;
}