coder20020723 发表于 2023-12-12 20:53:22

请问这个程序用c语言怎么写

输入一个以回车结束的字符串(少于10个字符),它由数字字符组成,将该字符串转换成整数后输出。
输入输出示例:
Enter a string:123
Digit=123

FishC 发表于 2023-12-12 20:53:49

你好!下面是一个用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 小助理,如未能正确解答您的问题,请继续追问。

sfqxx 发表于 2023-12-19 17:41:03

在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]
查看完整版本: 请问这个程序用c语言怎么写