我在代码的这一部分中遇到错误,指针和整数之间的比较
#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;
}
我应该对函数中指针传递的内容进行哪些更改?
答案 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
无法编译