как я могу сделать массив прочитанным от пользователя? - PullRequest
0 голосов
/ 23 января 2019

Все, что мне нужно, это пользовательский ввод для массива foo и print op, слева и справа от него.

Я попытался добавить следующий код, но не смог получить тот же результат.

Вместо написания char foo [29] = "1021+2551"; я написал:

int i;

printf("Enter the number and opperator");

for(i=0; i<1; i++)      // I used i < 1 b/c I want to get only one line input

{

scanf("%c", foo[i]);

}

void main(){

    int index;
    char foo[29] = "1021+2551";
    int len = strlen(foo);

    for (int i=0; i < len; i++)
    {
    if(foo[i] == '+' || foo[i] == '-' || foo[i] == '*' || foo[i] == '/' || foo[i] == '%'){
       char op = foo[i];
       printf("%c", op);
       index = i;
        }
    }
    char left;
    for(int j=0; j < index; j++){
       left = printf("%c",foo[j]);
    }
    char right;
    for(int k=index + 1; k < len; k++){
       right = printf("%c",foo[k]);
    }
}

Если я введу 100 + 200 в пользовательском вводе, результат должен быть

+ 100200

1 Ответ

0 голосов
/ 23 января 2019

Как-то так просто и быстро :)

    int main(){

    int i;
    char foo[29];

    printf("Enter the number and opperator\n");
    fgets(foo, 29 , stdin);

    int index;
    int len = strlen(foo);

    for (int i=0; i < len; i++)
    {
    if(foo[i] == '+' || foo[i] == '-' || foo[i] == '*' || foo[i] == '/' || foo[i] == '%'){
       char op = foo[i];
       printf("%c", op);
       index = i;
        }
    } printf(" ");
    char left;
    for(int j=0; j < index; j++){
       left = printf("%c",foo[j]);
    } printf(" ");
    char right;
    for(int k=index + 1; k < len; k++){
       right = printf("%c",foo[k]);
    }
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...