字符串功能性函数

该文主要介绍字符串截取、拼接等功能性函数。

1. strok 截取部分字符串

strok共有两个参数,第一个参数是需要处理的字符串str1,第二个参数是分割符str2,即从哪里截。
Example 1:

c 复制代码
#include <stdio.h>
#include <string.h>
char str1[]={abc,123.7ab}
//截出abc可以这么做
char *ret = strok(str1,",");//ret是abc
ret = strok(NULL,".");//ret是123

2. atoi/itoa 数字字符与字符串相互转换

atoi转换范围在--2147483648 ~ 2147483647,即整型数据范围。

atoi作用如Exqmpl1中截取到的123就可以按下面方式去取出,这样用switchstrcmp等会避免很多麻烦。
Example 2:

c 复制代码
int int_ret = atoi(ret); //输出结果即123

itoa则将int转为字符串,第一个参数是待转换的int型数据,第二个参数是保存的位置,第三个参数是进制,使用方法如下:
Example 3:

c 复制代码
char string[8] = {0};
itoa(int_ret,string,10); //得到的string是"123"

3. sprintf 将数据输出到指定字符数组中

printf是把数据打印到控制台,这么理解sprintf把数据写入到指定数组。

参数1,指定要写入的字符指针;参数2, 包含格式控制符的字符串,类似printf函数中的参数;参数3,可变参数列表,根据格式化字符串中指定的格式进行输出。参数2、3就理解为printf的使用方法就行。

安全版本的sprintf就是多了长度要求snprintf(str1,长度,str2,...)

Example 4:

c 复制代码
char str1[] = "Hello";
char str2[] = "world!";
char str3[100];
sprintf(str3, "%s %s", str1, str2);
printf("%s\n", str3); // 输出 "Hello world!"

4. memcpy和strcpy区别

memcpy将内存块复制,用于任意类型数据的拷贝,如数组、字符串、结构体、整型等,memcpy在用于字符串拷贝遇到\0不会退出,在拷贝时需要指定长度。

strcpy用于字符串的拷贝,不需要指定长度,遇到\0会退出,如strcpy(s1,s2),会将s2拷贝到s1中,如果s1空间小于s2,则会造成内存溢出。

相关推荐
Freak嵌入式4 小时前
嵌入式 MQTT 项目实战:Pico+MicroPython 向 EMQX 发布 JSON 消息全解析
嵌入式
Freak嵌入式4 小时前
MicroPython 开发:树莓派 Pico RTC 控制方法与 NTP 时间同步实现
嵌入式
Freak嵌入式5 小时前
一篇搞懂:MicroPython urequests库与 Pico HTTP 客户端实现
嵌入式
羚尔5 小时前
C语言数组
c语言·开发语言
Freak嵌入式5 小时前
一篇搞懂:MicroPython 与 Pico DHCP 动态 IP 的实现与调试
嵌入式
Freak嵌入式5 小时前
保姆级教程:MicroPython+W5500 实现 HTTP 服务器,网页一键控灯
嵌入式
Freak嵌入式5 小时前
【Pico 以太网实战系列 4/6】UDP 协议实操:MicroPython 实现回显服务器
嵌入式
Freak嵌入式6 小时前
MicroPython 以太网实战:Pico+W5500 TCP 客户端详解
嵌入式
Freak嵌入式6 小时前
MicroPython W5500 以太网实验|ping 测试:原理 + 实操全解析
嵌入式
老当益壮梁奶奶8 小时前
Linux软件编程学习笔记(十一):深入浅出 TCP 协议与 Socket 编程实践
linux·c语言·笔记·学习·tcp/ip