666HZ666 2024-03-14 21:09 采纳率: 100%
浏览 4
已结题

C语言大一新生,求详解

img

img


求一个带注释的代码
int main(int argc, char *argv[ ])是啥意思啊
还有puts 和printf和putchar有啥区别啊

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-14 21:09
    关注

    引自免费微信小程序:皆我百晓生

    在C语言中,int main(int argc, char *argv[]) 是程序的主入口点。这里的 argc(argument count)是一个整数,表示传递给程序的命令行参数个数,包括程序名本身。argv(argument vector)是一个指向字符串指针数组,其中包含了每个命令行参数的内容。当你运行一个程序并传入参数时,argv[0] 通常会存储程序的名字,argv[1]argv[2] 等依次存储后续的命令行参数。

    关于 puts()printf()putchar() 函数的区别:

    • puts(s):该函数用于输出字符串 s 到标准输出流(通常是终端屏幕),并在字符串末尾自动添加换行符 \n。例如:

      puts("Hello, World!"); // 输出 "Hello, World!\n"
      
    • printf():这是一个格式化输出函数,功能强大且灵活,可以输出各种类型的数据,并根据提供的格式控制输出样式。例如:

      printf("The value is: %d\n", 123); // 输出 "The value is: 123\n"
      printf("%c\n", 'A'); // 输出 "A\n"
      
    • putchar(c):此函数用于输出单个字符 c 到标准输出流。它一次只能输出一个字符,并不会自动添加换行符。

      putchar('H'); // 输出 "H"
      putchar('\n'); // 输出换行符
      

    针对你给出的问题,图1和图2描述的是实现一个名为 read_char 的函数,该函数从标准输入读取指定数量(由参数 n 指定)的字符,包括空白字符,并将它们存储到字符数组 st 中。以下是带有注释的代码实现:

    #include <stdio.h>
    #define SIZE 40
    
    // 定义 read_char 函数,接受一个字符数组及其大小作为参数
    char *read_char(char *st, int n) {
        int i = 0;
    
        // 使用 do-while 循环逐个读取字符,直到遇到 EOF 或达到限制值 n
        do {
            st[i] = getchar(); // 从标准输入读取一个字符
        } while (st[i] != EOF && ++i < n);
    
        // 返回处理过的字符数组首地址
        return st;
    }
    
    int main(int argc, char *argv[]) {
        char test[SIZE];
    
        // 输出提示信息
        puts("Start to test function. Enter a string.");
    
        // 调用 read_char 函数读取用户输入的字符串
        read_char(test, SIZE);
    
        // 输出读取到的字符串
        puts("The string you input is:");
        puts(test);
    
        return 0;
    }
    

    在这个例子中,main 函数首先声明了一个大小为 SIZE 的字符数组 test,然后调用 read_char 函数读取用户输入的字符串,并最终输出这个字符串。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 创建了问题 3月14日

悬赏问题

  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开