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

string.hライブラリのstrstr()を見てください。(ここで提供するリンクはC ++用ですが、Cには同じ機能があります。)

于 2012-07-20T21:50:09.930 に答える
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

知っている場合は、削除する ( N_front, N_back) 文字の数:

N_frontth charの後のすべてを前方に移動しN_front、終端の null バイトを設定します。

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