首页 > 其他分享 >【C语言常见函数】格式化输入与字符串处理函数汇总

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

时间:2024-08-07 21:56:42浏览次数:17  
标签:格式化 str2 str1 C语言 char 字符串 const 处理函数

格式化输出

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 的数组大小足够大,以容纳格式化后的数据。

标签:格式化,str2,str1,C语言,char,字符串,const,处理函数
From: https://blog.csdn.net/Thmos_vader/article/details/141001934

相关文章

  • C语言入门基础题:最大公约数(三个数间取最大公约数)
    1.题目描述输入三个正整数x,y,z,求它们的最大公约数(GreatestcommonDivisor)g:最大的正整数g>=1满足x,y,z都是g的倍数,即(x modg)=(ymodg)=(zmodg)=0。2.输入格式输入一行三个正整数x,y,z。3.输出格式输出一行一个整数g,表示x,y,z的最大公约数,4.输入......
  • 用C语言实现输入一个奇数n,输出一个由*构成的n阶实心菱形
    样图示例:一.基本思路该问题的主要难点时是如何使用循环通过人为输入的指定长度来确定空格和星号的输出,我的想法是将图形以中间最长的一条线分为上下部分,然后分别用不同的变量来表示空格和星号的输出,最后通过c语言来实现对图形颜色和闪烁的控制。二.具体实现1.上半部分......
  • 字符串左旋(c语言)
    1.字符串左旋//实现一个函数,可以左旋字符串的k个字符例如:ABCD左旋字符串的1个字符BCDA     ABCD左旋字符串的2个字符CDAB2.第一步我们先输入k(scanf),将第一位进行储存,然后其他位先前走一位,然后将第一位放在最后,然后进行打印。方法一#include<stdio.h>voidtest......
  • C语言实现猜数字小游戏
    游戏要求:1.电脑自动生成1-100的随机数2.玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了还是小了的反馈,直到猜对游戏结束1.随机数的生产C语言提供了一个函数叫rand,这个函数可以生产随机数,函数的原型如下所示:rand函数会返回一个伪随机数,这个随机数的大小是在0-32767(......
  • C语言随机数的生成
    目录前言一、 随机数⽣成1.rand2.srand 3.time4.设置随机数的范围 总结前言我们在前面已经学到了分支和循环结果,掌握了前面的知识,我们已经可以写一点有趣的代码了一、 随机数⽣成要想完成猜数字游戏,⾸先得产⽣随机数,那怎么产⽣随机数呢?1.randC语⾔提供了⼀......
  • C语言 操作符详解
    目录一、操作符的分类二、二进制和进制转换 2.1二进制转十进制 2.2二进制转八进制 2.3二进制转十六进制 三、原码、反码、补码四、移位操作符4.1左移操作符​编辑 4.2右移操作符五、位操作符按位与:&按位或:|按位异或:^按位取反:~六、逗号表达式七、操作......
  • 《重生到现代之从零开始的C语言生活》—— 调试
    前言:调试是几乎每一个计算机行业的人员必备的技能,那么让我们来学习一下吧bugbug这个词好像出现在生活的很多地方,一般指在电脑系统中或程序中,隐藏着一些未被发现的缺陷和问题,简称程序漏洞调试(debug)我们发现bug后,下一步就是找到问题并修复问题,找问题的过程就是调试调试一......
  • 《重生到现代之从零开始的C语言生活》——函数递归
    递归啥是递归啊递归是解决问的一种方式,简单来说,就是函数自己调用自己递归解决问题把复杂的大问题转化为一个一个与原文题相似的小问题。递归的思想就是把大事化小在递归中,递就是递推,归就是回归递归中的限制条件递归必须存在限制条件,当满足这个条件时,递归不在继续每次......
  • 超详细明了的C语言函数递归,望周知。(包含求n的阶乘顺序打印⼀个整数的每⼀位求第n个斐
    1.递归是什么?递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢?递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。写⼀个史上最简单的C语⾔递归代码#include<stdio.h>intmain(){printf......
  • 【项目实战】在前端开发中,集成了两款富文本编辑器(如 Quill Editor和 Froala Editor)可
    在前端开发中,集成富文本编辑器(如Quill和Froala)可以让用户在网页上编辑和格式化文本,就像使用桌面文字处理器一样。Quill和Froala都是非常流行的富文本编辑器,各有其特点和优势。下面分别介绍一下这两款编辑器以及如何在项目中集成它们。一、QuillEditor介绍Quill......