首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言兩句子拼接:手動實現 strcat 邏輯

     編輯:程式設計綜合問答

需求

輸入兩句英文句子 (含空格),不使用 `strcat`,手動拼接並輸出。

關鍵步驟

  1. 用 `fgets` 或 `scanf("%[^\n]")` 讀取整行 (含空格)。
  2. 找到第一字串結束位置 (第一個 `\0`)。
  3. **插入空格** (題目隱含「句子之間加空格」)。
  4. 將第二字串逐字元複製到第一字串尾部。
  5. 補上結束符 `\0`。

程式碼


#include 
#define MAX 200

int main() {
    char s1[MAX], s2[MAX];
    printf("輸入第一句: ");
    fgets(s1, MAX, stdin);
    s1[strcspn(s1, "\n")] = '\0'; // 移除 fgets 讀入的換行
    
    printf("輸入第二句: ");
    fgets(s2, MAX, stdin);
    s2[strcspn(s2, "\n")] = '\0';
    
    // 找 s1 末尾
    int i = 0;
    while (s1[i] != '\0') i++;
    
    // 加空格
    s1[i++] = ' ';
    
    // 複製 s2
    int j = 0;
    while (s2[j] != '\0') {
        s1[i++] = s2[j++];
    }
    s1[i] = '\0';
    
    printf("拼接結果: %s\n", s1);
    return 0;
}

注意事項

  • `fgets` 讀取含空格整行,`strcspn(s, "\n")` 移除尾部換行。
  • 確保 `s1` 空間足夠容納 `s1 + ' ' + s2 + '\0'` (定義 `MAX` 足大)。
  • 若禁止 `strcspn`,可手寫迴圈移除 `\n`。

這就是不使用 `strcat` 的手動拼接邏輯:定位末尾 → 加分隔符 → 逐字元複製 → 封口。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved