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

站库设计网站官网成都编程培训机构排名

站库设计网站官网,成都编程培训机构排名,四川超宇建设集团网站,网络营销课程多少钱C语言的字符串处理函数主要集中在 <string.h> 头文件中&#xff0c;使用这些函数前必须包含该头文件。 字符串处理函数操作的对象通常是字符串&#xff08;以 \0 结尾的字符数组&#xff09;&#xff0c;它们极大地方便了文本处理任务。 以下是我们将要讲解的主要函数&…

C语言的字符串处理函数主要集中在 <string.h> 头文件中,使用这些函数前必须包含该头文件。

字符串处理函数操作的对象通常是字符串(以 \0 结尾的字符数组),它们极大地方便了文本处理任务。

以下是我们将要讲解的主要函数:

  • strlen():计算字符串长度
  • strcpy() 和 strncpy():复制字符串
  • strcat() 和 strncat():连接字符串
  • strcmp() 和 strncmp():比较字符串
  • strchr() 和 strrchr():查找字符
  • strstr():查找子字符串

1、strlen()计算字符串长度

strlen() 函数的原型如下:

size_t strlen(const char *str);
  • str:要计算长度的字符串。
  • 返回值:字符串的长度(不包括 \0),类型为 size_t(无符号整数)。

例如:

#include <stdio.h>
#include <string.h>int main() {char str[] = "hello";size_t len = strlen(str);printf("字符串长度:%zu\n", len);return 0;
}

输出结果:

字符串长度:5

strlen() 只计算实际字符数,不包括末尾的 \0。如果传入的不是以 \0 结尾的字符数组,结果将是未定义的。

2、strcpy() 和 strncpy()复制字符串

1) strcpy()

strcpy() 将源字符串(包括 \0)复制到目标字符串。

char *strcpy(char *dest, const char *src);
  • dest:目标字符数组。
  • src:源字符串。
  • 返回值:指向 dest 的指针。

示例:

#include <stdio.h>
#include <string.h>int main() {char src[] = "hello";char dest[10];strcpy(dest, src);printf("复制后的字符串:%s\n", dest);return 0;
}

输出结果:

复制后的字符串:hello

注意:dest 必须有足够的空间容纳 src,否则会引发缓冲区溢出。

2) strncpy()

strncpy 是更安全的版本,允许指定复制的最大字符数。

char *strncpy(char *dest, const char *src, size_t n);
  • n:最多复制的字符数。

示例:

#include <stdio.h>
#include <string.h>int main() {char src[] = "hello world";char dest[6];strncpy(dest, src, 5); // 只复制前 5 个字符dest[5] = '\0';       // 手动添加结束符printf("复制后的字符串:%s\n", dest);return 0;
}

输出结果:

复制后的字符串:hello

注意:strncpy 不会自动添加 \0,如果 n 小于 src 长度,需手动补上。

3、strcat() 和 strncat()连接字符串

1) strcat()

strcat() 将源字符串追加到目标字符串末尾。

char *strcat(char *dest, const char *src);

示例:

#include <stdio.h>
#include <string.h>int main() {char dest[20] = "hello";char src[] = " world";strcat(dest, src);printf("连接后的字符串:%s\n", dest);return 0;
}

输出结果:

连接后的字符串:hello world
2) strncat()

strncat() 限制追加的字符数。

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

示例:

#include <stdio.h>
#include <string.h>int main() {char dest[20] = "hello";char src[] = " world";strncat(dest, src, 3); // 只追加 " wo"printf("连接后的字符串:%s\n", dest);return 0;
}

输出结果:

连接后的字符串:hello wo

strncat 会自动添加 \0,无需手动补齐。

4、strcmp() 和 strncmp()比较字符串

1) strcmp()

strcmp 按字典序比较两个字符串。

int strcmp(const char *str1, const char *str2);
  • 返回值:
    • 0:两字符串相等
    • 正数:str1 大于 str2
    • 负数:str1 小于 str2

示例:

#include <stdio.h>
#include <string.h>int main() {char str1[] = "apple";char str2[] = "banana";int result = strcmp(str1, str2);if (result < 0) printf("str1 < str2\n");else if (result > 0) printf("str1 > str2\n");else printf("str1 == str2\n");return 0;
}

输出结果:

str1 < str2
2) strncmp()

strncmp() 只比较前 n 个字符。

#include <stdio.h>
#include <string.h>int main() {char str1[] = "apple";char str2[] = "apricot";int result = strncmp(str1, str2, 2);if (result == 0) printf("前 2 个字符相等\n");return 0;
}

输出结果:

前 2 个字符相等

5、strchr() 和 strrchr()查找字符

1) strchr()

strchr() 查找字符在字符串中第一次出现的位置。

char *strchr(const char *str, int c);
  • c:要查找的字符(传入 int,但实际按 char 处理)。
  • 返回值:指向首次出现位置的指针,或 NULL(未找到)。

示例:

#include <stdio.h>
#include <string.h>int main() {char str[] = "hello";char *pos = strchr(str, 'l');if (pos) printf("'l' 首次出现位置:%ld\n", pos - str);return 0;
}

输出结果:

'l' 首次出现位置:2
2)strrchr()

strrchr() 查找最后一次出现的位置。

#include <stdio.h>
#include <string.h>int main() {char str[] = "hello";char *pos = strrchr(str, 'l');if (pos) printf("'l' 最后出现位置:%ld\n", pos - str);return 0;
}

输出结果:

'l' 最后出现位置:3

6、strstr()查找子字符串

strstr() 查找子字符串首次出现的位置。

char *strstr(const char *haystack, const char *needle);
  • haystack:被查找的字符串。
  • needle:要查找的子字符串。

示例:

#include <stdio.h>
#include <string.h>int main() {char str[] = "hello world";char *pos = strstr(str, "world");if (pos) printf("子字符串位置:%ld\n", pos - str);return 0;
}

输出结果:

子字符串位置:6

函数对比表格

函数功能返回值注意事项
strlen()计算长度size_t不含 \0
strcpy()复制字符串char *可能溢出
strncpy()有限复制char *需手动加 \0
strcat()连接字符串char *需确保空间
strcmp()比较字符串int字典序

注意事项

  • 头文件:始终包含 <string.h>
  • 安全性:避免缓冲区溢出,优先使用 strncpy 和 strncat
  • 空指针:查找函数返回 NULL 时需检查。


文章转载自:

http://NCdl4je1.yrctp.cn
http://nmsdsWgO.yrctp.cn
http://mvX1AonR.yrctp.cn
http://rxijkDl1.yrctp.cn
http://rA9nnZ69.yrctp.cn
http://SI42WXLj.yrctp.cn
http://cKcfXkFR.yrctp.cn
http://hsFj8TwT.yrctp.cn
http://1yk14MXr.yrctp.cn
http://rLNcK9YI.yrctp.cn
http://u1RB77PU.yrctp.cn
http://r1a28Wi1.yrctp.cn
http://ZWC5urou.yrctp.cn
http://m5PPhUqY.yrctp.cn
http://xZ667kBA.yrctp.cn
http://lGIjLViF.yrctp.cn
http://CO9EF3aB.yrctp.cn
http://CP3WVQrc.yrctp.cn
http://YeCAxSRs.yrctp.cn
http://eHR0P4Gw.yrctp.cn
http://U8d2iIst.yrctp.cn
http://JNy0ZEyd.yrctp.cn
http://CclUNzfV.yrctp.cn
http://XEFYTNxP.yrctp.cn
http://DJLIJy5U.yrctp.cn
http://Es2A7sPz.yrctp.cn
http://36BDrCli.yrctp.cn
http://s9O6jo8V.yrctp.cn
http://vg7PrMyB.yrctp.cn
http://SsfU8uWP.yrctp.cn
http://www.dtcms.com/wzjs/624078.html

相关文章:

  • 网站页面设计稿设计师网络平台
  • 微信网站合同网站的开发流程
  • 学校网站开发系统的背景珠海医疗网站建设公司
  • 仙桃有哪些做网站的公司兰州网络优化
  • 带有flash的网站甘肃网站设计公司
  • 昆明做网站软件wordpress 删除的模板
  • 做旅行网站的意义挣钱网站一小时两百
  • 国内的足彩网站怎么做的互动营销经典案例
  • 网站建设公司的小程序选择什么永久打开本网站的
  • 怎么免费建自己的网站展厅设计装修公司
  • visual c 网站开发江门网站建设系统
  • 阿里巴巴网站建设基础服务网店运营推广的概念
  • 做网站新乡互联网公司经营范围
  • app开发 网站开发统称做电商网站注意什么问题
  • 网站 专题建设服务中国wordpress
  • 政务网站集约化建设推进情况卖摄影作品的网站
  • 四川省城市建设培训中心 网站网站建设结论及体会
  • 三亚住房和城乡建设厅网站织梦网站背景
  • 永久免费网站空间旅游公网站如何做
  • 网站平台推广旅游网站开发分析报告
  • 网站建设具备哪些技术人员狮城app更多网站
  • php网站的部署在线图片制作生成
  • 网站悬浮框代码阿里指数查询官网
  • 企业网站建设的目的有()1688做网站难吗
  • 单位网站建设服务域名备案未及时注销处罚
  • 百度对网站的收录网站建设及外包
  • 手机访问网站跳wap北京做网站哪家好
  • wordpress建站时间科普网站建设
  • 海宁网站建设童程童美少儿编程怎样收费
  • 免费建立网站软件商城系统 wordpress嵌入