Использование strcpy для копирования части строки после определенного символа - PullRequest
0 голосов
/ 29 марта 2019

, поэтому у меня есть пользователь, который вводит пункт назначения, время полета и время ожидания.Ввод всегда будет выглядеть как «назначение, 0:00, 0:00», и я пытаюсь скопировать ввод и перепечатать его.У меня есть какая-то функция, чтобы обеспечить его ввод в правильном формате, но есть ли способ напечатать, скажем, время полета после первой запятой?Может быть, я слишком усложняю, любая помощь будет отличной!Спасибо!

Текущая цель: После того, как я подтвердил, что пользователь ввел свою строку в правильном формате, я хочу скопировать ее, а затем перепечатать.Я не могу использовать sscanf, strtok или любую другую функцию, которая выполняет токенизацию строковых данных.

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

/* == FUNCTION PROTOTYPES == */
int checkForComma(char* pUserString, char comma);
int checkForColon(char* pUserString, char colon);


/* == CONSTANTS == */
const char kComma = ',';
const char kColon = ':';

int main()
{
    int numbers = 0;
    int loopEnd = 0;
    int flightTime = 0;
    int inputAccepted = 0;
    int commaFound = 0;
    int colonFound = 0;

    while (loopEnd != 1)
    {
        char programOutput[81] = "";
        char userInput[81] = "";

        fgets(userInput, 81, stdin);

        strcpy_s(programOutput, 81, userInput);

        if ((userInput == NULL) || (userInput == '\0'))
        {
            printf("Please enter valid input!\n");
            return 0;
        }

        if (userInput == '.')
        {
            loopEnd = 1;
        }

        while (inputAccepted == 0)
        {
            commaFound = checkForComma(programOutput, kComma);
            colonFound = checkForColon(programOutput, kColon);

            if (commaFound && colonFound == 2)
            {
                printf("Input Accepted!");

                while (commaFound && colonFound == 2)
                {
                    int numberCounter = 0;
                    char* numCheck = programOutput;


                }
                break;
            }
            else
            {
                printf("Input not accepted!");
                return 0;
            }
        }

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

    return 0;
}


int checkForComma(char* pUserString, char comma)
{
    int counter = 0;

    char* pCheck = pUserString;

    while ((pCheck = strchr(pCheck, comma)) !=NULL)
    {
        counter++;
        pCheck++;
    }

    return counter;
}

int checkForColon(char* pUserString, char colon)
{
    int counter = 0;

    char* pCheck = pUserString;

    while ((pCheck = strchr(pCheck, colon)) != NULL)
    {
        counter++;
        pCheck++;
    }

    return counter;
}
...