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 回答
0

你需要一些速度来把绳子放进去

IE

char *stringInput="";

应该

char stringInput[20];

然后

scanf("%s",stringInput);

elseif甚至没有达到不会编译的地步

于 2013-11-13T00:19:13.243 回答