История изменений
Исправление Extraterrestrial, (текущая версия) :
Такое сойдет?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char ** argv)
{
char * string;
char * needle;
int len;
char * buf;
int i = 0;
if (argv[1] == NULL) {
fprintf (stderr, "Usage: %s string needle\n", argv[0]);
return 1;
}
string = strdup (argv[1]);
needle = strdup (argv[2]);
len = strlen (needle);
buf = malloc (strlen(string) + 1);
for(;;) {
if (!strncmp (string, needle, len)) {
string += len;
continue;
}
buf[i] = string[0];
i++;
if (string[0] == '\0') break;
string++;
}
printf ("%s\n",buf);
return 0;
}
$ gcc str2.c
$ ./a.out "root=/dev/mmcblk0p1 ro debug quiet debug splash ololo test debug" " debug"
root=/dev/mmcblk0p1 ro quiet splash ololo test
Вроде работает.
Исходная версия Extraterrestrial, :
Такое сойдет?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char ** argv)
{
char * string;
char * needle;
int len;
char * buf;
int i = 0;
if (argv[1] == NULL) {
fprintf (stderr, "Usage: %s string needle\n", argv[0]);
return 1;
}
string = strdup (argv[1]);
needle = strdup (argv[2]);
len = strlen (needle);
buf = malloc (strlen(string) + 1);
for(;;) {
if (!strncmp (string, needle, len)) {
string += len;
continue;
}
buf[i] = string[0];
i++;
if (string[0] == '\0') break;
string++;
}
printf ("%s\n",buf);
return 0;
}