【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )
生活随笔
收集整理的這篇文章主要介紹了
【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、指針使用前判空
- 二、while 空語句
- 三、代碼示例
一、指針使用前判空
在任何指針使用之前 , 要先進行判空 ;
尤其是 函數 形參 指針 , 使用前先 判斷該 指針變量 是一個合法的指針 ;
在 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! 請按任意鍵繼續. . .總結
以上是生活随笔為你收集整理的【C 语言】字符串拷贝 ( 指针使用前判空 | while 空语句 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】安卓 RecyclerVie
- 下一篇: 【C 语言】字符串拷贝 ( 函数形参使用