使用指針連接兩個字符串

1 題目

函數:connect()

功能:使用指針連接兩個字符串

描述:

實現兩個已知字符串的連接,放到另外一個字符串數組中,然后將連接好的字符串進行打印顯示

2 思路

使用字符型指針變量指向字符串的指針做函數的參數來實現字符串的連接

注意初始化 char *conn來存儲新字符串的時候,必須先分配存儲空間

char *conn = (char *)malloc(strlen(str1)+strlen(str2)+1);
memset(conn, strlen(str1)+strlen(str2)+1, 0); // 可選,初始化填充內存空間

另外,使用指針的特性,使得 conn 不斷被賦值, str1 和 str2 指向的存儲地址,達到字符串的連接

3 代碼

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h>

/**
函數:connect()
功能:使用指針連接兩個字符串
描述:
實現兩個已知字符串的連接,放到另外一個字符串數組中,然后將連接好的字符串進行打印顯示
**/


void connect(char *str1, char *str2, char *conn) {
    while(*str1 != '\0') {
        *conn = *str1;
        conn++;
        str1++;
    }
    *conn = ',';    // 兩個字符串直接添加逗號
    conn++;
    while(*str2 != '\0') {
        *conn = *str2;
        conn++;
        str2++;
    }
    *conn = '\0';
}


int main(int argc, char const *argv[]) {
    char *str1 = "技術分享園子";
    char *str2 = "計算廣告生態(tài)";
    char *conn = (char *)malloc(strlen(str1)+strlen(str2)+1);   // 為 conn 分配空間,否則是無效地址
    memset(conn, strlen(str1)+strlen(str2)+1, 0);               // 初始化 conn 指向的存儲地址
    printf("第一個字符串:%s\n", str1);
    printf("第二個字符串:%s\n", str2);
    connect(str1, str2, conn);
    printf("連接后的字符串是:\n");
    printf("%s\n", conn);
}

示例結果:

$ gcc ex017.c -o demo
$ ./demo
第一個字符串:技術分享園子
第二個字符串:計算廣告生態(tài)
連接后的字符串是:
技術分享園子,計算廣告生態(tài)
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 今天青石的票圈出鏡率最高的,莫過于張藝謀的新片終于定檔了。 一張滿溢著水墨風的海報一次次的出現在票圈里,也就是老謀...
    青石電影閱讀 10,982評論 1 2
  • 一、jQuery簡介 JQ是JS的一個優(yōu)秀的庫,大型開發(fā)必備。在此,我想說的是,JQ里面很多函數使用和JS類似,所...
    Welkin_qing閱讀 12,915評論 1 6
  • 字符串 1.什么是字符串 使用單引號或者雙引號括起來的字符集就是字符串。 引號中單獨的符號、數字、字母等叫字符。 ...
    mango_2e17閱讀 7,828評論 1 7
  • 一場說走就走的旅行。 簡單地整理幾件必備旅行用品,7.18日早上8.00準時出發(fā)了,計劃一路南下然后繞西南一圈回恩...
    悠游魚閱讀 3,680評論 3 6
  • 原來看過一段話,第一厲害的人有能力沒脾氣,第二厲害的人有能力有脾氣,最差的是沒能力有脾氣的人。 以我最...
    涼風豆豆閱讀 1,637評論 2 0

友情鏈接更多精彩內容