0

私はCで単純なUnixシェルを書いています。これが私がこれまでに持っているものです。

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

int main() {
    char x[256], y[256], z[256];
    while (1) {
        getcwd(y, sizeof(y));
        printf("%s$ ", y);
        fgets(x, sizeof(x), stdin);
        if (x[0] == 'c' && x[1] == 'd' && x[2] == ' ') {
            sscanf(x, "cd %s", &z);
            chdir(z);
        }
        else if (strcmp(x, "exit\n") == 0) break;
        else system(x);
    }
    return 0;
}

私がやりたいのは、チルダ文字(〜)と$HOMEを交換可能にすることです。簡単な検索と置換機能でこれを実行できると思いました。誰かがそのようなことを知っていますか?

4

1 に答える 1

0

あなたが探しているのはstrstr()、文字列内の部分文字列を検索する と、単一の文字を検索する strchr() だと思います。開始インデックスが見つかったら、文字列の前後の部分を~新しい文字列にコピーします。

この質問には str_replace の実装が含まれています

于 2010-09-18T18:34:08.890 に答える