標準庫 string.h 未提供的實用操作,以下為手寫實現:
void del_str_Num(char* str) {
int i = 0, j = 0;
while (str[i]) {
if (str[i] < '0' || str[i] > '9')
str[j++] = str[i];
i++;
}
str[j] = '\0';
}
char* ltrim(char *s, char c) {
while (*s && *s == c) s++;
return s;
}
void del_str_c(char s[], int c) {
int i, j;
for (i = 0, j = 0; s[i]; i++)
if (s[i] != c) s[j++] = s[i];
s[j] = '\0';
}
char* strflip(char* str) {
char *h = str, *t = str, ch;
while (*t++) ; t -= 2; // 指向最後一個非 '\0' 字符
while (h < t) {
ch = *h; *h++ = *t; *t-- = ch;
}
return str;
}
int main() {
char str[20] = "23.3hhlo965";
del_str_c(str, '.'); // 刪除 '.'
printf("%s\n", str); // 233hhlo965
del_str_Num(str); // 刪除數字
printf("%s\n", str); // hhlo
strflip(str); // 翻轉
printf("%s\n", str); // olhh
return 0;
}
233hhlo965
hhlo
olhh
其餘函數(delstr_c, strdel_c)邏輯類似,僅實現方式不同。