仅验证字符串数字

时间:2013-11-13 00:16:47

标签: c

我在代码的这一部分中遇到错误,指针和整数之间的比较

#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;
}

我应该对函数中指针传递的内容进行哪些更改?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您需要一些步调将字符串放入

char *stringInput="";

应该是

char stringInput[20];

然后

scanf("%s",stringInput);

甚至没有达到elseif无法编译

的程度
相关问题