【C语言常见函数】格式化输入与字符串处理函数汇总

格式化输出

sprintf()printf()fprintf()

功能上有本质区别,分别用于向字符串缓冲区、终端和文件输出格式化的数据!

简介
  1. printf()

    • printf() 是 C 标准库中的函数,用于向标准输出流(通常是终端)输出格式化数据
    • 格式:int printf(const char *format, ...)
    • 通过 printf() 函数,可以将格式化的数据输出到终端上,方便用户查看。
    • 示例:printf("Hello, %s!\n", "world");
  2. fprintf()

    • fprintf() 也是 C 标准库中的函数,用于向指定的流输出格式化数据

    • 格式:int fprintf(FILE *stream, const char *format, ...)

    • 通过 fprintf() 函数,可以将格式化的数据输出到指定的文件流中,实现数据的持久化存储。

    • 示例:fprintf(file, "The number is: %d\n", num);

      fprintf() 函数的输出重定向到这些流中:
      
      标准输出流(stdout):	输出到屏幕。
      标准错误流(stderr):	输出错误信息到屏幕。
      文件流:			   将输出写入到指定的文件中。
      网络流:			   将输出发送到网络连接。
      
  3. sprintf():★★★格式化写入字符串★★★

    • sprintf() 是 C 标准库中的函数,用于将格式化数据写入字符串缓冲区中。
    • 格式:int sprintf(char *str, const char *format, ...)
    • 通过 sprintf() 函数,可以将格式化的数据写入字符串缓冲区中,而不是输出到文件或终端。
    • 示例:sprintf(str, "The number is: %d", num);
应用场景

printf() 用于向终端输出fprintf() 用于向流输出,而 sprintf() 用于将格式化数据写入字符串中;

典例

#include <stdio.h>
#define  USAGE()    fprintf(stderr, “fopen err”)

int main() {
    // 使用 printf() 向终端输出格式化数据
    printf("Hello, %s!\n", "world");

    // 使用 fprintf() 向文件输出格式化数据
    FILE *file = fopen("output.txt", "w");
    if (file == NULL) {
       USAGE();
        return 1;
    }
    fprintf(file, "This is a message written to a file.\n");
    fclose(file);

    // 使用 sprintf() 将格式化数据写入字符串缓冲区
    char buffer[100]; // 用于存储格式化后的字符串
    int num = 42;
    char str[] = "example";
    sprintf(buffer, "The number is: %d, the string is: %s\n", num, str);

    // 输出格式化后的字符串
    printf("Formatted string: %s\n", buffer);

    return 0;
}

字符串处理函数

①计算字符串长度

*size_t strlen(const char str);

计算字符串长度,不包括 null 终止符。

char temp;strlen(temp);
②比较字符串的内容:

strcmp 函数

函数原型:	int strcmp(const char *str1, const char *str2);
功能:		 比较字符串 str1 和 str2 的内容。
返回值:
	如果 str1 和 str2 相等,返回 0。
	如果 str1 小于 str2,返回一个负整数。
	如果 str1 大于 str2,返回一个正整数。

strncmp 函数:

函数原型:	int strncmp(const char *str1, const char *str2, size_t n);
功能:		 比较字符串 str1 和 str2 的前 n 个字符的内容。
返回值:
	如果 str1 和 str2 前 n 个字符相等,返回 0。
	如果 str1 小于 str2,返回一个负整数。
	如果 str1 大于 str2,返回一个正整数。

strcasecmp 函数:

函数原型:	int strcasecmp(const char *str1, const char *str2);
功能:		 不区分大小写地比较字符串 str1 和 str2 的内容。
返回值:
	如果 str1 和 str2 相等,返回 0。
	如果 str1 小于 str2,返回一个负整数。
	如果 str1 大于 str2,返回一个正整数。

strncasecmp 函数:

函数原型:int strncasecmp(const char *str1, const char *str2, size_t n);
功能:不区分大小写地比较字符串 str1 和 str2 的前 n 个字符的内容。
返回值:
	如果 str1 和 str2 前 n 个字符相等,返回 0。
	如果 str1 小于 str2,返回一个负整数。
	如果 str1 大于 str2,返回一个正整数。
③复制和修改字符串内容

strcpy 函数:

函数原型:
	char *strcpy(char *dest, const char *src);
功能:
	将源字符串 src 复制到目标字符串 dest 中,包括 null 终止符。
注意事项:
	确保目标字符串 dest 的数组大小足够大,以容纳源字符串 src 的内容。

strncpy 函数:

函数原型:
	char *strncpy(char *dest, const char *src, size_t n);
功能:
	将源字符串 src 的前 n 个字符(不包括 null 终止符)复制到目标字符串 dest 中。
注意事项:
	如果 n 小于源字符串 src 的长度,目标字符串 dest 不会自动添加 null 终止符。

strcat 函数:

函数原型:
	char *strcat(char *dest, const char *src);
功能:
	将源字符串 src 追加到目标字符串 dest 的末尾,并添加 null 终止符。
注意事项:
	确保目标字符串 dest 的数组大小足够大,以容纳源字符串 src 的内容和目标字符串 dest 的内容。

strncat 函数:

函数原型:
	char *strncat(char *dest, const char *src, size_t n);
功能:
	将源字符串src的前n个字符(不包括 null 终止符)追加到目标字符串 dest 的末尾,并添加 null 终止符。
注意事项:
	如果 n 小于源字符串 src 的长度,目标字符串 dest 不会自动添加 null 终止符。

sprintf 函数:

函数原型:
	int sprintf(char *str, const char *format, ...);
功能:
	将格式化的数据写入字符串 str 中。
注意事项:
	确保目标字符串 str 的数组大小足够大,以容纳格式化后的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值