【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )
语言 使用 字符串 指针 拷贝 while
2023-06-13 09:17:59 时间
文章目录
一、指针使用前判空
在任何指针使用之前 , 要先进行判空 ;
尤其是 函数 形参 指针 , 使用前先 判断该 指针变量 是一个合法的指针 ;
在 void str_copy(char *from, char *to)
函数中 , 使用两个指针之前 , 首先要确保这两个指针都不为空 ;
使用如下代码 , 判断指针的合法性 , 如果指针为 NULL , 则立刻退出 ;
// 判断 参数中的 指针变量 不为空
if(from == NULL || to == NULL)
{
// 这两个指针有任何一个为空 , 都直接退出
return;
}
二、while 空语句
在 C 中 , 可以使用 while 空语句 , 只需要定义循环条件 , 省略循环体 , 核心功能在循环控制条件中实现 ;
// 从 from 指针指向的字符 拷贝到
// to 指针指向的字符
// 如果拷贝的值不是 \0 , 则指针累加
// 如果拷贝的值是 \0
// 这样就不需要额外拷贝 \0 字符了
while((*to++ = *from++));
三、代码示例
代码示例 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
* 实现字符串拷贝 ( 实现了模块化 )
* 将 from 指针指向的字符串 拷贝到 to 指针指向的字符串换
*/
void str_copy(char *from, char *to)
{
// 判断 参数中的 指针变量 不为空
if(from == NULL || to == NULL)
{
// 这两个指针有任何一个为空 , 都直接退出
return;
}
// 从 from 指针指向的字符 拷贝到
// to 指针指向的字符
// 如果拷贝的值不是 \0 , 则指针累加
// 如果拷贝的值是 \0
// 这样就不需要额外拷贝 \0 字符了
while((*to++ = *from++));
}
int main()
{
// 定义一个字符串数组
// "Hello World!" 常量在 全局区 的常量区
// 然后 拷贝到了 栈内存中的 array 数组中
char array[] = "Hello World!";
// 在栈内存中定义 char *指针
// 在堆内存分配 20 字节内存 , 用于存放字符串
char *buffer = malloc(20);
// 调用字符串拷贝函数
str_copy(array, buffer);
// 打印拷贝结果
printf("buffer = %s\n", buffer);
// 命令行不要退出
system("pause");
return 0;
}
执行结果 :
buffer = Hello World!
请按任意键继续. . .
相关文章
- 【说站】java语言代码大全
- 【说站】c语言中abort函数的使用
- 【说站】c语言中使用指向结构指针的原因
- 【测开技能】Java语言系列(十四)for循环
- R语言分布滞后非线性模型(DLNM)空气污染研究温度对死亡率影响建模应用|附代码数据
- 「Go工具箱」go语言csrf库的使用方式和实现原理
- 跟男朋友约会也要问语言模型?Nature:提idea,总结笔记,GPT-3竟成当代「科研民工」
- R语言使用Bass模型进行手机市场产品周期预测|附代码数据
- 「Go工具箱」go语言csrf库的使用方式和实现原理
- 【Rust日报】2022-11-28 使用 Rust 编写解释型语言
- Nat. Comput. Sci. | 使用有监督的Transformer蛋白质语言模型进行单序列蛋白质结构预测
- 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )
- 【C 语言】字符串操作 ( 使用 数组下标 操作字符串 | 使用 char * 指针 操作字符串 )
- 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )
- 使用Go语言来操作Oracle数据库(go语言oracle)
- Go语言使用select切换协程
- 新闻速读 > Fanx 语言 3.2 发布,全面支持中文编程
- 利用Linux系统掌握R语言编程技能(linux使用r语言)
- Linux系统下如何编译C语言程序?(linux下c语言编译)
- 使用R语言连接MSSQL服务器简易指南(r语言 mssql)
- 使用Oracle语言轻松实现编程梦想(oracle代码怎么写)
- 语言使用Oracle,学习什么编程语言(oracle中有什么编程)
- 了解WEB页面工具语言XML(三)支持工具
- c语言中if语句的作用范围示例代码
- c语言main函数使用及其参数介绍