stdio.h

printf

  • 格式输出函数

    1. // 带前缀的八进制
    2. printf("%#o\n",100);//0144
    3. // 带前缀的16进制
    4. printf("%#x\n",100);//0x64
    5. // 不带前缀的八进制
    6. printf("%o\n",100);//144
    7. // 不带前缀的16进制
    8. printf("%x\n",100);//64
    9. // 浮点数
    10. printf("%f\n",3.0);// 3.000000
    11. // 二位小数的浮点数
    12. printf("%.2f\n",100.0000);//100.00
    13. // 长整数
    14. printf("%ld\n",3L);
    15. // 字符
    16. printf("%c\n",'a');
    17. // 指针
    18. int a = 4;
    19. printf("%p\n",&a);

    scanf

      int a;
      int b;
    
      scanf("%d %d",&a,&b);
      printf("%d %d",a,b);
    
  • 长度限制

      int a;
      // 限制长度5
      scanf("%5d",&a);
      //输入12345678 ,此处a只能得到12345
      printf("%d",a);
    

    putchar

  • 输出字符

    putchar('a');
    

    getchar

  • 键盘输入一个字符

      char c = getchar();
      printf("%c",c);
    

    snprintf

  • 将可变参数(…)按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断

      char buffer[5];
      int size = snprintf(buffer, 5, "%s8910","01234567");
      printf("%s\n",buffer);// 01234
      printf("%d\n",size);// -1
    

    stdlib.h

    atoi

    int atoi(const char str) 把参数 str 所指向的字符串转换为一个整数(类型为 int 型)。 参数str — 要转换为整数的字符串。返回值该函数返回转换后的长整数,如果没有执行有效的转换,则返回零。 ```java char str = “123”; int a = atoi(str); // 字符串值 = 123, 整型值 = 123 printf(“字符串值 = %s, 整型值 = %d\n”, str, a);

    str = “hello”; int b = atoi(str); //字符串值 = hello, 整型值 = 0 printf(“字符串值 = %s, 整型值 = %d\n”, str, b); ```

    time.h

  • 储存时间的结构体

    struct tm {
     int tm_sec;         /* 秒,范围从 0 到 59        */
     int tm_min;         /* 分,范围从 0 到 59        */
     int tm_hour;        /* 小时,范围从 0 到 23        */
     int tm_mday;        /* 一月中的第几天,范围从 1 到 31    */
     int tm_mon;         /* 月,范围从 0 到 11        */
     int tm_year;        /* 自 1900 年起的年数        */
     int tm_wday;        /* 一周中的第几天,范围从 0 到 6    */
     int tm_yday;        /* 一年中的第几天,范围从 0 到 365    */
     int tm_isdst;       /* 夏令时                */
    };
    
  • 获取时间

    #include <stdio.h>
    #include <time.h>
    int main(int argc, const char * argv[]) {
    
      char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
    
      time_t timet;
      time(&timet);
    
      struct tm *p;
      p = gmtime(&timet);
    
      printf("%d-%d-%d ", (1900+p->tm_year), (1+p->tm_mon), p->tm_mday);
      printf("%s %d:%d:%d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
    
      return 0;
    }
    

    string.h

  • 字符串方法需引入:#include <>

    strlen

  • 字符串长度

      char greet1[] = "Hello";
      char greet2[] = "world";
    
      // 字符串长度
      printf("%d\n",strlen(greet1)); // 5
    

    strcpy

  • 复制

      char greet1[] = "Hello";
      char greet2[] = "world";
      // 把字符串2复制给d字符串1
      strcpy(greet1, greet2);
      printf("%s,%s\n",greet1,greet2); // world,world
    

    strcat

  • 拼接

      char greet1[] = "Hello";
      char greet2[] = "world";
      // 连接字符串 s2 到字符串 s1 的末尾。
      strcat(greet1, greet2);
      printf("%s,%s\n",greet1,greet2); // Helloworld,world
    

    strcmp

  • 比较:如果 s1 和 s2 是相同的,则返回 0;如果 s1s2 则返回大于 0。

      char greet1[] = "Hello";
      char greet2[] = "world";
      // 连接字符串 s2 到字符串 s1 的末尾。
      int result= strcmp(greet1, greet2);
      printf("%d",result);// -47
    

    strchr

  • strchr(s1, ch): 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置

      // 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
      char* p = strchr("Hello", 'o');
      printf("%c",*p);// o
    

    strstr

  • strstr(s1, s2): 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置

      // 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。
      char* p1 = strstr("Hello", "ll");
      printf("%c",*p1);// l
    

    strdup

  • char strdup(const char s);

  • 函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。
  • 返回值:返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL 表示内存不足。
  • 使用结束后要手动释放系统自动分配的空间