赞
踩
向标准输出设备输出一个字符。
- #include <stdio.h>
-
- int putchar(int c);
参数 c: 需要进行输出的字符。
返回值: 出错将返回 EOF。
输出一个字符。
注:与 putchar()区别在于,putchar()输出到标准输出设备,而 fputc()可把字符输出到指定的文件中。
- #include <stdio.h>
-
- int fputc(int c, FILE *stream);
参数 c: 需要进行输出的字符。
参数 stream: 文件指针。
返回值: 成功时返回输出的字符; 出错将返回 EOF。
向标准输出设备输出字符串并自行换行(即遇到' \0 '结束输出,并将' \0 '转换为换行符' \n ')。
- #include <stdio.h>
-
- int puts(const char *s);
参数 s: 需要进行输出的字符串。
返回值: 成功返回一个非负数;失败将返回 EOF, EOF 其实就是-1。
输出字符串并自行换行(即遇到' \0 '结束输出,并将' \0 '转换为换行符' \n ')。
注:与 puts()区别在于, puts()只能输出到标准输出设备,而 fputs()可把字符串输出到指定的文件中。
- #include <stdio.h>
-
- int fputs(const char *s, FILE *stream);
参数 s: 需要输出的字符串。
参数 stream: 文件指针。
返回值: 成功返回非负数;失败将返回 EOF。
用于从标准输入设备中读取一个字符。
注:从输入缓冲区读取字符数据,但只读取一个字符,包括空格、 TAB 制表符、换行回车符等。
- #include <stdio.h>
-
- int getchar(void);
返回值: 该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
读取一个输入字符。
注:fgetc()与 getchar()的区别在于, fgetc 可以指定输入字符的文件,既可以从标准输入设备输入字符,也可以从一个普通文件中输入字符。
- #include <stdio.h>
-
- int fgetc(FILE *stream);
参数 stream: 文件指针。
返回值: 该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
获取输入的字符串。
- #include <stdio.h>
-
- char *fgets(char *s, int size, FILE *stream);
参数 s: 指向字符数组的指针,用于存储字符串。
参数 size: 这是要读取的最大字符数。
参数 stream: 文件指针。
返回值: 如果成功, 该函数返回指向 s 的指针; 如果发生错误或者到达末尾时还未读取任何字符,则返回 NULL。
分隔符 | fgets()函数以回车作为分隔符 scanf()函数空格、换行符、 TAB 制表符等 |
缓冲区 | fgets()读走缓冲区中的字符串数据之后,缓冲区中将不会遗留下回车换行符 使用scanf()读走缓冲区中的字符串数据时,并不会将分隔符(空格、 TAB 制表符、 回车换行符等) 读走将其丢弃,所以使用 scanf()读走缓冲区中的字符串数据之后,缓冲区中依然还存在用户输入的分隔符。 |
用于计算字符串长度。
- #include <string.h>
-
- size_t strlen(const char *s);
参数 s: 需要进行长度计算的字符串,字符串必须包含结束字符' \0 '。
返回值: 返回字符串长度(以字节为单位),字符串结束字符' \0 '不计算在内。
1)sizeof 是 C 语言内置的操作符关键字,而 strlen 是 C 语言库函数;
2)sizeof 仅用于计算数据类型的大小或者变量的大小,而 strlen 只能以结尾为' \0 '的字符串作为参数;
3)编译器在编译时就计算出了 sizeof 的结果,而 strlen 必须在运行时才能计算出来;
将两个字符串连接(拼接)起来。
注:strcat()函数会把 src 所指向的字符串追加到 dest 所指向的字符串末尾,所以必须要保证 dest 有足够的存储空间来容纳两个字符串,否则会导致溢出错误; dest 末尾的' \0 '结束字符会被覆盖, src 末尾的结束字符'\0 '会一起被复制过去,最终的字符串只有一个' \0 '。
- #include <string.h>
-
- char *strcat(char *dest, const char *src);
参数 dest: 目标字符串。
参数 src: 源字符串。
返回值: 返回指向目标字符串 dest 的指针。
strncat 可以指定源字符串追加到目标字符串的字符数量
注:如果源字符串 src 包含 n 个或更多个字符, 则 strncat()将 n+1 个字节追加到 dest 目标字符串(src 中的 n个字符加上结束字符' \0 ')。
- #include <string.h>
-
- char *strncat(char *dest, const char *src, size_t n);
参数 dest: 目标字符串。
参数 src: 源字符串。
参数 n: 要追加的最大字符数。
返回值: 返回指向目标字符串 dest 的指针。
字符串拷贝。strcpy()会把 src(必须包含结束字符' \0 ') 指向的字符串复制(包括字符串结束字符' \0 ') 到 dest,所以必须保证 dest 指向的内存空间足够大,能够容纳下 src 字符串,否则会导致溢出错误。
- #include <string.h>
-
- char *strcpy(char *dest, const char *src);
参数 dest: 目标字符串。
参数 src: 源字符串。
返回值: 返回指向目标字符串 dest 的指针。
strncpy()可以指定从源字符串 src 复制到目标字符串 dest 的字符数量。
注:把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 n 小于或等于 src 字符串长度(不包括结束字符的长度)时, 则复制过去的字符串中没有包含结束字符' \0 ';当 n 大于 src 字符串长度时,则会将 src 字符串的结束字符' \0 '也一并拷贝过去, 必须保证 dest 指向的内存空间足够大,能够容纳下拷贝过来的字符串,否则会导致溢出错误。
- #include <string.h>
-
- char *strncpy(char *dest, const char *src, size_t n);
参数 dest: 目标字符串。
参数 src: 源字符串。
参数 n: 从 src 中复制的最大字符数。
返回值: 返回指向目标字符串 dest 的指针。
内存拷贝。
- #include <string.h>
-
- void *memcpy(void *dest, const void *src, size_t n);
参数 dest: 目标字符串。
参数 src: 源字符串。
参数 n: 从 src 中复制的最大字符数。
memmove用于拷贝字节,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,但复制后源内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。
- #include <string.h>
-
- void *memmove(void *dest, const void *src, size_t n);
参数 dest: 目标字符串。
参数 src: 源字符串。
参数 n: 从 src 中复制的最大字符数。
将字符串src的前n个字节复制到dest中。
- #include <strings.h>
-
- void bcopy(const void *src, void *dest, size_t n);
参数 src: 源字符串。
参数 dest: 目标字符串。
参数 n: 从 src 中复制的最大字符数。
注:bcopy不检查字符串中的空字节NULL,函数没有返回值。 在POSIX.1-2001中,bcopy()被标记为不赞成使用,到POSIX.1-2008,bcopy()被移除出了标准,POSIX标准建议用memcpy()、memmove()代替。
用于将某一块内存的数据全部设置为指定的值。
- #include <string.h>
-
- void *memset(void *s, int c, size_t n);
参数 s: 需要进行数据填充的内存空间起始地址。
参数 c: 要被设置的值,该值以 int 类型传递。
参数 n: 填充的字节数。
返回值: 返回指向内存空间 s 的指针。
用于将一段内存空间中的数据全部设置为 0.
- #include <strings.h>
-
- void bzero(void *s, size_t n);
参数 s: 内存空间的起始地址。
参数 n: 填充的字节数。
返回值: 无返回值。
strcmp 进行字符串比较,主要是通过比较字符串中的字符对应的 ASCII 码值, strcmp 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现了不同的字符,或者某一字符串已经到达末尾(遇见了字符串结束字符' \0 ')。
- #include <string.h>
-
- int strcmp(const char *s1, const char *s2);
参数 s1: 进行比较的字符串 1。
参数 s2: 进行比较的字符串 2。
返回值:
如果返回值小于 0 | 则表示 str1 小于 str2 |
如果返回值大于 0 | 则表示 str1 大于 str2 |
如果返回值等于 0 | 则表示字符串 str1 等于字符串 str2 |
用于字符串的前 n 个字符进行比较。
- #include <string.h>
-
- int strncmp(const char *s1, const char *s2, size_t n);
参数 s1: 参与比较的第一个字符串。
参数 s2: 参与比较的第二个字符串。
参数 n: 最多比较前 n 个字符。
返回值: 返回值含义与 strcmp()函数相同。
查找到给定字符串当中的某一个字符(从左到右)。
- #include <string.h>
-
- char *strchr(const char *s, int c);
参数 s: 给定的目标字符串。
参数 c: 需要查找的字符。
返回值: 返回字符 c 第一次在字符串 s 中出现的位置,如果未找到字符 c,则返回 NULL。
字符串结束字符' \0 '也将作为字符串的一部分, 因此,如果将参数 c 指定为' \0 ',则函数将返回指向结束字符的指针。 strchr 函数在字符串 s 中从前到后(或者称为从左到右)查找字符 c,找到字符 c 第一次出现的位置就返回,返回值指向这个位置,如果找不到字符 c 就返回 NULL。
查找到给定字符串当中的某一个字符(从右到左)。
- #include <string.h>
-
- char *strrchr(const char *s, int c);
可在给定的字符串中查找第一次出现子字符串的位置,不包含结束字符' \0 '
- #include <string.h>
-
- char *strstr(const char *haystack, const char *needle);
参数 haystack: 目标字符串。
参数 needle: 需要查找的子字符串。
返回值: 如果目标字符串 haystack 中包含了子字符串 needle,则返回该字符串首次出现的位置;如果未能找到子字符串 needle,则返回 NULL。
检索字符串 s中第一个匹配字符串accept中的字符(不包含空结束字符)。也就是说,依次检验字符串s中的字符,当被检验字符在accept中也包含时,则停止检验,并返回该字符。
- #include <string.h>
-
- char *strpbrk(const char *s, const char *accept);
函数返回一个指针,指向字符串s中第一次出现的字符c。结束空字节('\0')被认为是字符串的一部分。
- #include <strings.h>
-
- char *index(const char *s, int c);
参数 s: 给定的目标字符串。
参数 c: 需要查找的字符。
返回值:函数返回一个指向匹配字符的指针,如果没有找到该字符则返回NULL。
注:由于index()
在POSIX中已弃用且不属于C标准库,因此应使用strchr()
。
函数返回一个指针,指向字符串s中第一次出现的字符c。结束空字节('\0')被认为是字符串的一部分。
- #include <strings.h>
-
- char *rindex(const char *s, int c);
-
参数 s: 给定的目标字符串。
参数 c: 需要查找的字符。
返回值:函数返回一个指向匹配字符的指针,如果没有找到该字符则返回NULL。
注:由于rindex()在POSIX中已弃用且不属于C标准库,因此应使用strrchr()。
将字符串转换为int类型。
- #include <stdlib.h>
-
- int atoi(const char *nptr);
参数 nptr: 需要进行转换的字符串。
返回值: 分别返回转换之后得到的 int 类型数据。
注:目标字符串 nptr 中可以包含非数字字符, 转换时跳过前面的空格字符(如果目标字符串开头存在空格字符) ,直到遇上数字字符或正负符号才开始做转换,而再遇到非数字或字符串结束时(' /0 ')才结束转换,并将结果返回。
将字符串转换为long类型。
- #include <stdlib.h>
-
- long atol(const char *nptr);
参数 nptr: 需要进行转换的字符串。
返回值: 分别返回转换之后得到的 long int 类型数据。
将字符串转换为long long类型。
- #include <stdlib.h>
-
- long long atoll(const char *nptr);
参数 nptr: 需要进行转换的字符串。
返回值: 分别返回转换之后得到的 long long 类型数据。
将字符串转换为一个 double 类型的浮点数据。
- #include <stdlib.h>
-
- double atof(const char *nptr);
参数 nptr: 需要进行转换的字符串。
返回值: 返回转换得到的 double 类型数据。
strtol()可以实现将多种不同进制数表示的字符串转换为整形数据。
- #include <stdlib.h>
-
- long int strtol(const char *nptr, char **endptr, int base);
参数 nptr: 需要进行转换的目标字符串。
参数 endptr: char **类型的指针, 如果 endptr 不为 NULL,将字符串中第一个无效字符的地址存储在*endptr 中。 也可将参数 endptr 设置为 NULL,表示不接收相应信息。
参数 base:在 base=0 的情况下, 如果字符串包含一个了“0x”前缀, 表示该数字将以 16 为基数; 如果包含的是“0”前缀,表示该数字将以 8 为基数。当 base=16 时,字符串可以使用“0x”前缀。
返回值: 分别返回转换之后得到的 long int 类型数据。
注:需要进行转换的目标字符串可以以任意数量的空格或者 0 开头, 转换时跳过前面的空格字符,直到遇上数字字符或正负符号(' + '或' - ') 才开始做转换,而再遇到非数字或字符串结束时(' /0 ')才结束转换,并将结果返回。
strtoll()可以实现将多种不同进制数 表示的字符串转换为整形数据。
- #include <stdlib.h>
-
- long long int strtoll(const char *nptr, char **endptr, int base);
使用方法与 strtol()一样,区别在于返回值的类型不同, strtoul()返回值类型是 unsigned
long int。
- #include <stdlib.h>
-
- unsigned long int strtoul(const char *nptr, char **endptr, int base);
使用方法与strtoll()一样,区别在于返回值的类型不同 strtoull()返回值类型是 unsigned long long int。
- #include <stdlib.h>
-
- unsigned long long int strtoull(const char *nptr, char **endptr, int base);
将字符串转换为 float 类型数据
- #include <stdlib.h>
-
- float strtof(const char *nptr, char **endptr);
注:参数与 strtol()含义相同,但是少了 base 参数。
将字符串转换为double 类型数据。
- #include <stdlib.h>
-
- double strtod(const char *nptr, char **endptr);
注:参数与 strtol()含义相同,但是少了 base 参数。
将字符串转换为long double 类型数据
- #include <stdlib.h>
-
- long double strtold(const char *nptr, char **endptr);
注:参数与 strtol()含义相同,但是少了 base 参数。
格式化输出到stdin。
- #include <stdio.h>
-
- int printf(const char *format, ...);
参数 format:格式
返回值:一旦成功返回,将返回打印的字符数(不包括用于结束字符串输出的空字节)。
格式化输出到文件。
- #include <stdio.h>
-
- int fprintf(FILE *stream, const char *format, ...);
参数 stream:FILE指针
参数 format:格式
返回值:一旦成功返回,将返回打印的字符数(不包括用于结束字符串输出的空字节)。
格式化输出到文件描述符。
- #include <stdio.h>
-
- int dprintf(int fd, const char *format, ...);
参数 fd:文件描述符
参数 format:格式
返回值:一旦成功返回,将返回打印的字符数(不包括用于结束字符串输出的空字节)。
格式化输出到缓冲区。
- #include <stdio.h>
-
- int sprintf(char *str, const char *format, ...);
参数 format:格式
返回值:一旦成功返回,将返回打印的字符数(不包括用于结束字符串输出的空字节)。
注:函数会在字符串尾端自动加上一个字符串终止字符'\0'。
格式化输出到缓冲区(最多size字节)。
- #include <stdio.h>
-
- int snprintf(char *str, size_t size, const char *format, ...);
参数 str:缓存区
参数 size:最大字节
参数 format:格式
返回值:一旦成功返回,将返回打印的字符数(不包括用于结束字符串输出的空字节)。
注:函数会在字符串尾端自动加上一个字符串终止字符'\0'。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。