【发布时间】:2021-10-30 03:47:58
【问题描述】:
我创建了一个快照 void 函数。用户给出一个注册号,例如“M/12/222”,其中 12 是批号,222 是“e 号”。我创建了这样的代码,但它不能正常工作。上面的编号和批号并没有从注册号中拆分出来
这里我们不使用任何其他外部库。
char enumber[9];
char batchNo[2];
char eNO[3];
printf("Enter the Registration Number: ");
scanf("%s",enumber);
printf("%s\n",enumber);
for (int i=2;i<8;i++){
if(2<=i&&i<4){
batchNo[i-2]=enumber[i];
printf("%c\n",batchNo[i-2]);
}
if(i>4){
eNO[i-5]=enumber[i];
}
}
printf("%s\n",batchNo);
【问题讨论】:
-
如果“/”总是出现在值之间,则使用它来确定每个数据块的位置。
-
对于初学者,
printf("c\n",batchNo[i-2]);-->printf("%c\n",batchNo[i-2]);(在c前面添加了%)。这为batchNo提供了正确的输出。当我打印出eNO时,看起来它的字符设置也正确。如果您希望它们成为字符串,请确保添加NUL终止符。 -
帮自己一个忙,使用可用的tutorialspoint.com/index.htm
-
请注意,
batchNo和eNO数组中需要更多空间以允许空终止符,以便结果是字符串,而不仅仅是字符数组。您非常相信您的用户永远不会输入任何错误内容——而且用户(甚至您)通常非常不可靠,并且当您认为他们只会输入“hello”时,他们会想方设法输入“supercalifragilisticexpialidocious”。