0

ユーザーが入力した文字列の残りをコピーしようとしています。次の場合は常に入力されます: 空港、00:00、00:00。数字は飛行時間と乗り継ぎ時間です。私のコードでは、空港を吐き出すようにしましたが、strchr を使用して最初の "," 以降のすべてを見つけようとするのは面倒です。空港を削除して残りを新しい文字列に入れ、引き続き strchr を使用する方法はありますか? コンマで区切られた文字列を再フォーマットする必要があるのが目標です。最終結果は、「都市には飛行時間 tt.tt 時間と乗り継ぎ時間 tt.tt 時間があります」となるはずです。scanf などを使用できないので、strchr と strcopy が私の唯一のオプションのようです。どんな助けでも大歓迎です。

現在、文字列の最後の「、」の後に文字を見つけようとすると、エラーが発生します。

割り当て規則: strtok()、scanf 関連の関数、文字列データのトークン化を行う関数は使用しないでください。

int main()
{
    int counter = 0;
    int flightTimeNum = 0;
    char userInput[81] ="";
    char userInputNew[81] = "";
    char cityNew[20] = "";
    char flightTime[20] = "";
    char layOverTime[20] = "";


    fgets(userInput, 81, stdin);
    char *city;
    char *flight;
    char *layover;

    city = strchr(userInput, ',');
    strncpy(cityNew, userInput, city - userInput);
    printf("%s\n" ,cityNew);

    layover = strrchr(userInput, ',');
    strncpy(layOverTime, userInput, layover - userInput);
    printf("%s\n", layOverTime);

    printf("Press ENTER key to Continue\n");
    getchar();

}
4

4 に答える 4