当前位置: 首页 > wzjs >正文

医院营销型网站建设重庆孝爱之家网站建设

医院营销型网站建设,重庆孝爱之家网站建设,网页浏览器软件有,网站备案信息传目录 * gets()/fgets() - 字符串输入 * puts() - 字符串输出 * strlen() - 字符串长度获取 * strcpy()/strncpy() - 字符串复制 * strcat()/strncat() - 字符串连接 * strcmp()/strncmp() - 字符串比较 * strchr()/strrchr() - 查找字符 * memset() - 内存设置…

目录

*  gets()/fgets() - 字符串输入

*  puts() - 字符串输出

*  strlen() - 字符串长度获取

*  strcpy()/strncpy() - 字符串复制

*  strcat()/strncat() - 字符串连接

*  strcmp()/strncmp() - 字符串比较

*  strchr()/strrchr() - 查找字符

*  memset() - 内存设置

*  memcpy() - 内存复制

*  sprintf()/snprintf() - 格式化字符串写入


        C语言中的字符串处理是编程基础中的核心内容。由于C语言没有内置字符串类型,而是使用字符数组和指针来处理字符串,因此标准库提供了一系列字符串操作函数。本文将全面介绍这些函数的正确使用方法、实际案例以及常见错误。

*  gets()/fgets() - 字符串输入

char *gets(char *str);           // 已废弃
fgets(str, sizeof(str), stdin);  // 安全版本

        功能:从标准输入读取一行到str指向的缓冲区
        问题:极易发生缓冲区溢出
                   C11标准已移除该函数 替代方案:fgets
        示例:

char name[20];
printf("请输入您的姓名:");
fgets(name, sizeof(name), stdin);  // 安全读取输入
printf("您好,%s", name);

*  puts() - 字符串输出

int puts(const char *str);

        功能:输出字符串并自动添加换行符
        示例puts("Hello World"); // 输出:Hello World\n
        特点:比printf()效率更高,自动添加换行符

*  strlen() - 字符串长度获取

size_t strlen(const char *str);

        功能:计算字符串长度(不含'\0')
        示例

char str[] = "Hello";
printf("%zu", strlen(str));  // 输出5

        注意:遇到'\0'停止,不计算终止符

*  strcpy()/strncpy() - 字符串复制

char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);

        功能:复制src到dest
        对比

函数安全性是否自动补'\0'推荐指数
strcpy不安全★★☆☆☆
strncpy较安全★★★☆☆

        安全示例

char dest[10];
strncpy(dest, src, sizeof(dest)-1);
dest[sizeof(dest)-1] = '\0';

*  strcat()/strncat() - 字符串连接

char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t n);

        功能:将src追加到dest末尾
        安全示例

char dest[20] = "Hello";
strncat(dest, " World!", sizeof(dest)-strlen(dest)-1);

        常见错误:目标缓冲区空间不足,忘记初始化目标字符串

*  strcmp()/strncmp() - 字符串比较

int strcmp(const char *str1, const char *str2);
int strncmp(const char *str1, const char *str2, size_t n);

        返回值:<0: str1 < str2
                      =0: str1 == str2
                      >0: str1 > str2
        示例

if(strncmp(str1, str2, 5) == 0) {// 前5个字符相同
}

*  strchr()/strrchr() - 查找字符

char *strchr(const char *str, int c);  // 正向查找
char *strrchr(const char *str, int c); // 反向查找

        示例:

char *p = strchr("Hello", 'l');  // 指向第一个'l'
char *p = strrchr("Hello", 'l'); // 指向第二个'l'

*  memset() - 内存设置

void *memset(void *str, int c, size_t n);

        用途:将 str 指向的内存区域的前 n 个字节设置为特定值 c,常用于初始化字符串/内存块
        示例

char buffer[10];// 初始化为0
memset(buffer, 0, sizeof(buffer));
printf("Buffer: %s\n", buffer);  // 输出空字符串// 初始化为'A'
memset(buffer, 'A', 5);
buffer[5] = '\0';  // 添加终止符
printf("Buffer: %s\n", buffer);  // 输出:AAAAA

        注意事项:不会自动添加字符串终止符 \0

*  memcpy() - 内存复制

void *memcpy(void *dest, const void *src, size_t n);

        功能:从 src 指向的内存地址复制 n 个字节到 dest 指向的内存地址
          适用于任何数据类型的内存复制
          常用于字符串复制(比strcpy更快)

        示例:

#include <stdio.h>
#include <string.h>int main() {char src[] = "Hello World";char dest[20];// 复制字符串memcpy(dest, src, strlen(src)+1);  // +1包含终止符printf("Copied: %s\n", dest);  // 输出:Hello World// 复制整型数组int nums1[5] = {1,2,3,4,5};int nums2[5];memcpy(nums2, nums1, sizeof(nums1));return 0;
}

*  sprintf()/snprintf() - 格式化字符串写入

int sprintf(char *str, const char *format, ...);                // 不安全版本
int snprintf(char *str, size_t size, const char *format, ...);  // 安全版本

        功能:将格式化数据写入字符串缓冲区,snprintf() 会限制写入长度防止溢出

参数sprintfsnprintf说明
str✔️✔️目标缓冲区
size✔️缓冲区最大容量(含\0
format✔️✔️格式化字符串
...✔️✔️可变参数
返回值intintsprintf: 成功返回写入字符数(不含\0),失败返回负数snprintf: 成功返回欲写入的字符数(不含\0),若超过size则返回需要的大小,失败返回负数

        示例:

char buffer[50] = {0};
int year = 2025;sprintf(buffer, "当前年份:%d,欢迎使用C语言!", year);
printf("%s\n", buffer);  // 输出:当前年份:2025,欢迎使用C语言!
#include <stdio.h>
#include <string.h>int main() {char buffer[50] = {0};  // 初始化缓冲区为全零int year = 2025;/* 安全替换方案:snprintf* 参数说明:* 1. buffer - 目标缓冲区* 2. sizeof(buffer) - 最大写入长度(自动计算数组大小)* 3. 格式化字符串和参数*/int result = snprintf(buffer, sizeof(buffer), "当前年份:%d,欢迎使用C语言!", year);/* 检查返回值:* 1. 若返回值 >= sizeof(buffer),说明内容被截断* 2. 若返回值 < 0,说明发生错误*/if (result >= sizeof(buffer)) {printf("警告:输出被截断!需要 %d 字节,但缓冲区只有 %zu 字节\n",result, sizeof(buffer));} else if (result < 0) {perror("snprintf 出错");return 1;}printf("%s\n", buffer);  // 输出:当前年份:2025,欢迎使用C语言!return 0;
}

参考:C语言处理字符串的十个函数(附带大量实例)_c语言字符串的函数-CSDN博客
           常用的字符串处理函数_常用字符串处理函数-CSDN博客


文章转载自:

http://7unQMVQH.spLkk.cn
http://OTYzppVi.spLkk.cn
http://1mH6TBj0.spLkk.cn
http://EYRNMqhR.spLkk.cn
http://w3zc8TEN.spLkk.cn
http://zEBUjEYL.spLkk.cn
http://znoVnlmu.spLkk.cn
http://uVekJDqr.spLkk.cn
http://XDmIQ8FN.spLkk.cn
http://UDflvkJw.spLkk.cn
http://x9RQdWOv.spLkk.cn
http://yXyrTpsw.spLkk.cn
http://Sesmdkg7.spLkk.cn
http://0FK0qQLH.spLkk.cn
http://RLkicdRN.spLkk.cn
http://GYdC6IQB.spLkk.cn
http://HMNPqKUW.spLkk.cn
http://IqgxbjMI.spLkk.cn
http://E7cHAG75.spLkk.cn
http://wR0hW8dh.spLkk.cn
http://7CvaJqDB.spLkk.cn
http://5iE1bakF.spLkk.cn
http://3tBGpMiG.spLkk.cn
http://E0MXYVDg.spLkk.cn
http://kJblK3ys.spLkk.cn
http://tT15nmLh.spLkk.cn
http://k5LEqknL.spLkk.cn
http://ykePQTP7.spLkk.cn
http://cgBqmwqJ.spLkk.cn
http://kBLp0Q0R.spLkk.cn
http://www.dtcms.com/wzjs/748604.html

相关文章:

  • 书画院网站模板昆山建设工程招标网站
  • 制作一个景点介绍的网站html郑州市招投标信息网
  • 南宁网站推广排名公司网站建设推广方案
  • 江西个人网站备案做论坛西安推荐企业网站制作平台
  • 太仓网站制作书生网站后台不能粘贴
  • 网站建立需要什么条件上海已经开始二次感染
  • 优质做网站公司陕西渭南富平建设局网站
  • 福州网站制作维护渝北网站制作
  • 做pc端网站哪家好查询网址域名ip地址
  • 免费下载ppt模板网站有哪些做淘宝的人就跟做网站一样
  • 哪个网站做任务钱给得多重庆购物网站建设
  • 家具做网站北京建设网站兼职普工
  • 北京app网站建设做网站服务销售
  • dede做电影网站wordpress附件大小
  • 长沙做个网站多少钱小程序开发平台哪家比较被大家认可
  • 郑州免费网站制作郑州发布会最新消息
  • 家装设计效果图专业网站长春网站制作wang
  • 重庆企业建站系统模板深圳装修公司网站
  • dedecms网站乱码建设一个游戏网站需要多少钱
  • 怎样做原创短视频网站电商网站建设规划开发方案
  • 徐州市建设银行网站泰安钢管网站建设
  • 卫生系统网站的建设和维护怎么上网站后台
  • 棋盘网站开发百度收录提交工具
  • 电商网站建设要多少钱网页编辑软件哪个好
  • 龙岗网站建设网站制作建一个电商平台系统要多少钱
  • 网站后台html页面国家信息公示网查营业执照
  • 宁波网站建设速成seo深度优化服务
  • 南京 网站建设网站建设与运营公司主营业务收入与成本
  • 宣城公司做网站东莞市广建建设工程有限公司
  • 网站建设方案 百度文库上海建设部网站首页