您好,登錄后才能下訂單哦!
在C語言中,字符串替換操作可以通過自定義函數來實現
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
char *str_replace(const char *str, const char *old, const char *new) {
char *result;
int i, count = 0;
int newlen = strlen(new);
int oldlen = strlen(old);
for (i = 0; str[i] != '\0'; i++) {
if (strncmp(&str[i], old, oldlen) == 0) {
count++;
i += oldlen - 1;
}
}
result = (char *)malloc(i + count * (newlen - oldlen) + 1);
if (result == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
i = 0;
while (*str) {
if (strncmp(str, old, oldlen) == 0) {
strcpy(&result[i], new);
i += newlen;
str += oldlen;
} else {
result[i++] = *str++;
}
}
result[i] = '\0';
return result;
}
int main() {
const char *str = "Hello, world!";
const char *old = "world";
const char *new = "C Language";
char *replaced = str_replace(str, old, new);
printf("Original string: %s\n", str);
printf("Replaced string: %s\n", replaced);
free(replaced);
return 0;
}
這個程序首先定義了一個名為str_replace
的函數,該函數接受三個參數:原始字符串str
、需要被替換的子字符串old
和用于替換的新子字符串new
。函數首先計算替換后的字符串長度,然后為結果字符串分配內存。接下來,函數遍歷原始字符串,將不需要替換的部分復制到結果字符串中,并在遇到需要替換的子字符串時進行替換。最后,函數返回結果字符串。
在main
函數中,我們使用str_replace
函數替換字符串中的"world"為"C Language",并輸出原始字符串和替換后的字符串。注意,我們需要在程序結束時釋放由str_replace
函數分配的內存。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。