stdio.h
printf
格式输出函数
// 带前缀的八进制printf("%#o\n",100);//0144// 带前缀的16进制printf("%#x\n",100);//0x64// 不带前缀的八进制printf("%o\n",100);//144// 不带前缀的16进制printf("%x\n",100);//64// 浮点数printf("%f\n",3.0);// 3.000000// 二位小数的浮点数printf("%.2f\n",100.0000);//100.00// 长整数printf("%ld\n",3L);// 字符printf("%c\n",'a');// 指针int a = 4;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);// -1stdlib.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
-
strlen
字符串长度
char greet1[] = "Hello"; char greet2[] = "world"; // 字符串长度 printf("%d\n",strlen(greet1)); // 5strcpy
复制
char greet1[] = "Hello"; char greet2[] = "world"; // 把字符串2复制给d字符串1 strcpy(greet1, greet2); printf("%s,%s\n",greet1,greet2); // world,worldstrcat
拼接
char greet1[] = "Hello"; char greet2[] = "world"; // 连接字符串 s2 到字符串 s1 的末尾。 strcat(greet1, greet2); printf("%s,%s\n",greet1,greet2); // Helloworld,worldstrcmp
比较:如果 s1 和 s2 是相同的,则返回 0;如果 s1
s2 则返回大于 0。 char greet1[] = "Hello"; char greet2[] = "world"; // 连接字符串 s2 到字符串 s1 的末尾。 int result= strcmp(greet1, greet2); printf("%d",result);// -47strchr
strchr(s1, ch): 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置
// 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。 char* p = strchr("Hello", 'o'); printf("%c",*p);// ostrstr
strstr(s1, s2): 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置
// 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。 char* p1 = strstr("Hello", "ll"); printf("%c",*p1);// lstrdup
char strdup(const char s);
- 函数说明:strdup()会先用maolloc()配置与参数s 字符串相同的空间大小,然后将参数s 字符串的内容复制到该内存地址,然后把该地址返回。该地址最后可以利用free()来释放。
- 返回值:返回一字符串指针,该指针指向复制后的新字符串地址。若返回NULL 表示内存不足。
- 使用结束后要手动释放系统自动分配的空间
