C Check duplicate string entries

2019-09-21 20:40发布

问题:

I need to check if in my file there are duplicates entries, in C.

Sample file:

/proc/proc1 1000
/proc/proc2 2000
/proc/proc1 3000

I need to solve like this:

/proc/proc1 1000 3000
/proc/proc2 2000

The path (/proc/proc*) can include spaces likes: /proc/proc hello/foo

Here I wrote something to handle /proc/ and their pids, but now I'm stuck on this problem..

回答1:

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

int main(void){
    char str[]= "/proc/proc hello/foo 4000";
    char path[256];
    char pid[10];
    char *p;

    p=strrchr(str, ' ');
    strcpy(pid, p+1);
    *p='\0';
    strcpy(path, str);
    printf("%s\n", path);// /proc/proc hello/foo
    printf("%s\n", pid);// 4000

    return 0;
}