0

コードのこの部分で、ポインターと整数の比較でエラーが発生します

#include<stdio.h>

int validateString(char *inStr);
int main()
{
    char *stringInput="";
    printf("Please enter a 10 digit phone number: ");
    scanf("%s",&stringInput);
    if (validateString(stringInput)== 1)
    {
        printf("%s is a valid phone number.",stringInput);
    }
    elseif (validateString(stringInput)== 0)
    {
        printf("%s is a valid phone number.",stringInput);
    }
}

int validateString(char *inStr)
{
    int i;
    int length= strlen(inStr);
    for (i=0;i<length;i++)
    {
        if(!(inStr[i]>= '0' && inStr <= '9' || inStr[i]== ' '))
        {
            return 0;
        }
        elseif(length>=12)
        {
            return 0;
        }
    }
    return 1;
}

関数内を通過するポインターについて何を変更すればよいですか?

4

2 に答える 2

1

これを : から 変更します(変更を説明するインライン コメントを参照してください...)

        char *stringInput="";//creates no space for user input
        printf("Please enter a 10 digit phone number: ");
        scanf("%s",&stringInput); //`stringInput` already pointer (`char *`), does not require `&`. 

        char stringInput[20];//for additional space in case user enters more than 10
        printf("Please enter a 10 digit phone number: ");
        scanf("%s",stringInput);//do not use `&` for string
于 2013-11-13T00:21:03.480 に答える