在 C 語言中,沒有內置的 string 類型,但我們可以使用字符數組(char array)來模擬字符串。要實現替換功能,你可以遵循以下步驟:
以下是一個簡單的示例函數,用于替換字符數組中的子字符串:
#include <stdio.h>
#include <string.h>
void replace(char *str, const char *old, const char *new) {
char buffer[1000]; // 創建一個足夠大的緩沖區來存儲結果
char *src = str;
char *dest = buffer;
// 遍歷原始字符串,直到找到舊子字符串的末尾
while (*src != '\0' && strncmp(src, old, strlen(old)) != 0) {
*dest++ = *src++;
}
// 如果找到了舊子字符串,將其替換為新子字符串
if (*src == '\0') {
strcpy(dest, new);
dest += strlen(new);
} else {
// 如果沒有找到舊子字符串,將原始字符串剩余部分復制到緩沖區
strcpy(dest, src);
dest = buffer + strlen(buffer);
}
// 將緩沖區的內容復制回原始字符串
strcpy(str, buffer);
}
int main() {
char str[] = "Hello, world!";
const char *old = "world";
const char *new = "C語言";
replace(str, old, new);
printf("替換后的字符串: %s\n", str);
return 0;
}
這個示例中的 replace 函數接受一個字符數組(模擬字符串)和兩個子字符串(要替換的舊子字符串和新子字符串)。函數首先遍歷原始字符串,找到舊子字符串的末尾。然后,將新子字符串復制到找到的位置,并將原始字符串剩余部分移動到新字符串的末尾。最后,將緩沖區的內容復制回原始字符串。