0

需要从该字符串中删除填充字符,即"REMOVEMEHOW"需要通过截断而不匹配大小写来删除它,我正在尝试截断缓冲区的标题部分。

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

int main () 
{     
    char buffer[200]="REMOVEMEHOW**THIS IS THE REST OF THE STRING THAT IS FINE***REMOVEMEHOW";    

    system("pause");
    return 0; 
}
4

3 回答 3

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

char* strrmv(char *text, char *removeword){
    char *p=text;
    int rlen;
    rlen = strlen(removeword);
    while(NULL!=(p=strstr(p, removeword))){
        memmove(p, p+rlen, strlen(p+rlen)+1);
    }
    return text;
}

int main(){
    char buffer[200]="REMOVEMEHOW**THIS IS THE REST OF THE STRING THAT IS FINE***REMOVEMEHOW";

    printf("\"%s\"", strrmv(buffer, "REMOVEMEHOW"));
    return 0; 
}
于 2012-07-21T11:50:57.673 回答
1

看看string.h 库中的strstr()。(我在这里给出的链接是针对 C++ 的,但 C 具有相同的功能。)

于 2012-07-20T21:50:09.930 回答
1

如果您知道要删除多少个 ( N_front, ) 字符:N_back

N_frontth 字符后的所有内容向前移动N_front并设置终止的空字节。

memmove (buffer, buffer + N_front, 200 - N_front);
buffer[strlen(buffer) - N_back] = '\0';
于 2012-07-20T21:50:57.913 回答