我想用strncpy刪除我的字符串的某個部分,但我在這裏面臨一些問題。使用strncpy刪除部分字符*
這是我的2個字符*。
trimmed有例如「127.0.0.1/8 |垃圾|垃圾2 |」這是一個地址的前綴 。
backportion包含「|垃圾|垃圾2 |」
我想要做的是從修剪中刪除代碼的後部分。到目前爲止,我得到了這個:
char* extractPrefix(char buf[1024]){
int count = 0;
const char *divider = "|";
char *c = buf;
char *trimmed;
char *backportionl;
while(*c){
if(strchr(divider,*c)){
count++;
if(count == 5){
++c;
trimmed = c;
//printf("Statement: %s\n",trimmed);
}
if(count == 6){
backportionl = c;
}
}
c++;
}
strncpy(trimmed,backportionl,sizeof(backportionl));
printf("Statement 2: %s\n", trimmed);
哪個網我一個錯誤的backportionl是一個char *而不是一個字符。
是否有無論如何我可以解決這個問題,或找到一個更好的方法來修剪這個char *來獲得我的目標?
你認爲'sizeof(backportionl)'的價值是什麼? – wildplasser
我想它會讓我回到backportionl的長度,這樣我就可以使用strncpy修剪掉所有的東西。 – Bocky
錯誤。它是'sizeof(char *)',可能是4或8. – wildplasser