首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言字串奇偶位置分離:將字元依索引奇偶分配至兩個緩衝區

     編輯:關於C語言

C 語言字串奇偶位置分離:將字元依索引奇偶分配至兩個緩衝區

演算法

單次遍歷,維護兩個目的地指標,索引計數器判斷奇偶。

完整程式碼

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

void split_odd_even(const char *src, char *odd, char *even) {
    int idx = 0;
    while (*src) {
        if (idx % 2 == 0) *odd++ = *src;  // 0-based 偶數索引 → 邏輯第 1,3,5... 字元
        else *even++ = *src;              // 奇數索引 → 第 2,4,6...
        ++src;
        ++idx;
    }
    *odd = '\0';
    *even = '\0';
}

int main() {
    const char *src = "1a2b3d4z";
    char *odd = malloc(strlen(src)+1);
    char *even = malloc(strlen(src)+1);
    split_odd_even(src, odd, even);
    printf("奇數位(1-based): %s\n", odd);  // 1234
    printf("偶數位(1-based): %s\n", even); // abdz
    free(odd); free(even);
    return 0;
}

索引定義釐清

術語0-based 索引1-based 位置範例字元
奇數位偶數 (0,2,4...)1,3,5...1,2,3,4
偶數位奇數 (1,3,5...)2,4,6...a,b,d,z

程式中 idx%2==0 對應 1-based 奇數位,符合人類直覺說法。

應用場景

  • 交錯解碼 (如某些簡單加密)。
  • 資料分流處理。
  • 教學示範指標運算與索引控制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved