C语言中常见的读取字符(串)函数

在C语言中,常用的读取字符(串)的函数包括getcharfgetcscanfsscanf等。

  1. getchar函数:

    • 函数原型:int getchar(void);

    • 作用:从标准输入流中读取一个字符。
    • 特点:只能读取一个字符,常用于逐字符处理输入。
    • #include <stdio.h>
      
      int main() {
          printf("请输入一个字符串:\n");
      
          int c;
          while ((c = getchar()) != '\n' && c != EOF) {
              putchar(c); // 将读取的字符输出到标准输出流
          }
      
          return 0;
      }
      
  2. fgetc函数:

    • 函数原型:int fgetc(FILE *stream);
    • 作用:从指定的文件流中读取一个字符。
    • 特点:与getchar类似,但可以指定读取的文件流。
    • #include <stdio.h>
      
      int main() {
          FILE *file;
          char filename[] = "example.txt";
      
          file = fopen(filename, "r"); // 以只读方式打开文件
          if (file == NULL) {
              printf("无法打开文件 %s\n", filename);
              return 1;
          }
      
          int c;
          while ((c = fgetc(file)) != EOF) {
              putchar(c); // 将读取的字符输出到标准输出流
          }
      
          fclose(file); // 关闭文件
      
          return 0;
      }
      
  3. scanf函数:

    • 函数原型:int scanf(const char *format, ...);
    • 作用:从标准输入流中按照指定的格式读取数据,可以用于读取字符。
    • 注意:对于字符,scanf会在遇到空格、制表符或换行符时停止读取。
    • #include <stdio.h>
      
      int main() {
          int num;
          char str[100];
      
          printf("请输入一个整数和一个字符串:\n");
          scanf("%d %s", &num, str);
      
          printf("您输入的整数是: %d\n", num);
          printf("您输入的字符串是: %s\n", str);
      
          return 0;
      }
      

  4. sscanf函数:

    • 函数原型:int sscanf(const char *str, const char *format, ...);
    • 作用:从指定的字符串中按照指定的格式读取数据,可以用于从字符串中提取特定格式的数据。
    • 特点:可以用于对字符串进行格式化读取,常用于解析字符串中的数据。
    • #include <stdio.h>
      
      int main() {
          char str[] = "2022 Happy New Year";
          int year;
          char message[50];
      
          sscanf(str, "%d %s", &year, message);
      
          printf("从字符串中解析得到的年份是: %d\n", year);
          printf("从字符串中解析得到的消息是: %s\n", message);
      
          return 0;
      }
      

异同点:

  • getcharfgetc都是用于读取单个字符,而scanfsscanf则可以按照指定格式读取数据,包括字符和其他数据类型。
  • getcharfgetc主要用于逐字符处理输入,适合处理字符流;而scanfsscanf更适合按照格式读取数据,适用于不同的输入场景。
  • scanfsscanf可以处理多种数据类型,更灵活,适用于复杂的输入数据解析。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值