1

Cで2つの区切り文字を使用して文字列をカットする方法は?

このプラットフォームでユーザーから文字列を取得しています:

cp <path1> <path2>

パスを新しい文字列 (1 つの文字列への各パス) に取得する必要があります。

strstrandを使用しようとしましstrtokたが、機能しません。

パスの長さはわかりません。また、それらがで始まっていることも知っています" \"(これは私が持っている区切り文字です(space + \))。

これは私が試したものです #include #include #include

int main()
{
  char *c;
  char *ch = malloc(1024);
  while (strcmp(ch, "exit"))
  {
    scanf("%[^\n]%*c", ch); //what was the input (cp /dor/arthur /king/apple)
    c = malloc(sizeof(strlen(ch) + 1));
    strcpy(c, ch);
    char *pch = strtok(c, " //");
    printf("this is : %s \n", pch); //printed "this is: cp"
  }
}
4

2 に答える 2

1

使用してstrtok()ください。上記のリンクには、使用例が含まれていますstrtok().

2 つの区切り文字 ( space + \) をstrtok()次のように使用できます。

str = strtok(str, " \\");
于 2013-08-31T13:26:45.320 に答える
-1

主な機能にありますか?そうである場合、メイン関数には argc (int) および *argv[] (string) パラメーターがあり、必要に応じて実行できます。

于 2013-08-31T13:27:33.790 に答える