实现验证输入的必须全部是数字0~9构成的字符串,利用函数checkNumber验证输入的字符串中的每个字符是否全为数字0~9之一,如果是则返回1,否则返回0。然后利用函数getNumberString容错地读取一个全由数字0~9组成的数字字符串。要求编写完整的程序测试运行你所写的函数。 输入提示:"请输入一个全为数字的字符串:\n" 输入格式:"%s" 输出提示:"你输入的正确的数字串为:%s\n"
时间: 2024-02-28 13:57:40 浏览: 16
好的,我知道了。下面是实现该功能的代码:
```python
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int checkNumber(char *str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (!isdigit(str[i])) {
return 0;
}
}
return 1;
}
char *getNumberString() {
char *str = NULL;
size_t len = 0;
ssize_t read;
printf("请输入一个全为数字的字符串:\n");
read = getline(&str, &len, stdin);
if (read == -1) {
perror("getline");
exit(EXIT_FAILURE);
}
str[strcspn(str, "\n")] = '\0';
while (!checkNumber(str)) {
printf("输入错误,请重新输入一个全为数字的字符串:\n");
read = getline(&str, &len, stdin);
if (read == -1) {
perror("getline");
exit(EXIT_FAILURE);
}
str[strcspn(str, "\n")] = '\0';
}
return str;
}
int main() {
char *str = getNumberString();
printf("你输入的正确的数字串为:%s\n", str);
free(str);
return 0;
}
```
代码实现了两个函数,`checkNumber`用于检查一个字符串是否全为数字,`getNumberString`用于容错地读取一个全由数字0~9组成的数字字符串。在`getNumberString`函数中,我们使用`getline`函数读取用户输入的字符串,并使用`checkNumber`函数检查是否全为数字。如果不全为数字,就提示用户重新输入,直到输入正确为止。最后,我们在`main`函数中调用`getNumberString`函数获取用户输入的数字字符串,并输出结果。
你可以尝试运行一下这个程序,测试一下它的正确性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)