请问这个程序用c语言怎么写
输入一个以回车结束的字符串(少于10个字符),它由数字字符组成,将该字符串转换成整数后输出。输入输出示例:
Enter a string:123
Digit=123 你好!下面是一个用C语言编写的程序,可以实现你的需求。
#include <stdio.h>
#include <stdlib.h>
int main() {
char str;
int num = 0;
printf("Enter a string: ");
fgets(str, 10, stdin);
for (int i = 0; str != '\0'; i++) {
if (str >= '0' && str <= '9') {
num = num * 10 + (str - '0');
}
}
printf("Digit=%d\n", num);
return 0;
}
这个程序中,我们首先定义了一个长度为10的字符数组 `str` 来存储用户输入的字符串。然后,使用 `fgets` 函数从标准输入中读取字符串,并将其存储到 `str` 中。
接下来,我们使用一个循环遍历 `str` 中的每一个字符。如果某个字符是数字字符(ASCII码值在 `'0'` 和 `'9'` 之间),则将其转换成对应的数字,并累加到变量 `num` 中。
最后,我们使用 `printf` 函数输出结果。
希望能够帮到你!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 在C语言中,你可以使用`sscanf`函数来实现,代码可能如下:
#include <stdio.h>
int main() {
char str;
printf("Enter a string:");
fgets(str, 11, stdin);
int number;
sscanf(str, "%d", &number);
printf("Digit=%d\n", number);
return 0;
}
这段代码首先使用`fgets`函数,从标准输入`stdin`中获取一个字符串,并将这个字符串存储在`str`数组中。这个字符串至多包含10个字符(我们还需要为字符串末尾的'\0'字符预留一个位置),然后使用sscanf函数将这个字符串转换成整数。整数值被存储在number变量中。最后,我们使用printf函数打印出整数值。
求最佳答案{:10_254:}
页:
[1]