我可以使用 2 个索引的数组来执行此操作,但是当我有 3 个索引的数组时,它只会更改一个值的索引,而当我有 9 个索引时,我的验证会发出警报。
当在 3 的数组中输入 11 以接收 011 时,我正在尝试这样的事情,但我得到 101。
我一直在查看我的第二个函数,我在其中循环遍历索引以切换值。
int validateInt(int digitAmount);
char* validateCharAmount(int charAmount);
int main(void) {
do{
printf("Please enter Student's ID': ");
studentID=validateInt(3);
}while(studentID!=0);
return 0;
}
int validateInt(int digitAmount)
{
int value;
char *entrySegments;
int index=0;
char temp;
entrySegments=validateCharAmount(digitAmount);
while(index<digitAmount){
while((entrySegments[index]-48)<0 || (entrySegments[index]-48)>9){
printf("Invalid Value! Please input an integer: ");
entrySegments=validateCharAmount(digitAmount);
index=0;
}
value=10*value+(entrySegments[index]-48);
index++;
}
printf("%d",value);
return value;
}
char* validateCharAmount(int charAmount){
char entrySegments[charAmount];
int index=0;
entrySegments[0]= NULL;
entrySegments[charAmount]= NULL;
scanf("%s",entrySegments);
while(entrySegments[charAmount]!=NULL){
printf("You entered too many characters! Please input %d: ", charAmount);
scanf("%s",entrySegments);
}
while(index<charAmount){
while((entrySegments[index])==NULL){
entrySegments[index]=entrySegments[index-1];
entrySegments[index-1]=48;
}
index++;
}
return entrySegments;
}