Замена списка значений на введенный пользователем C

#c #multidimensional-array #copy #c-strings #string-literals

#c #многомерный массив #Копировать #c-струны #строковые литералы

Вопрос:

Как я могу заменить Numbers значения на с input помощью . Если значение input равно 1, то Numbers значение будет равно {"K", "2", "3", "4", "5", "6", "7", "8", "9"} , а затем, если пользователь input равен 4 Numbers , значение будет повторно обновлено до {"K", "2", "3", "K", "5", "6", "7", "8", "9"} значения и так далее.

 int main(void)
{
  int input = 0
  char Numbers[][9] = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};
  return 0;
  for (int i = 1; i <= 18; i  ){
     scanf("%d", amp;input);    
  }
}
 

Ответ №1:

Вам нужно использовать стандартную строковую функцию C strcpy . Например

 #include <string.h>

//...

strcpy( Numbers[input - 1], "K" );
 

Перед использованием функции вы должны убедиться , что значение input больше , чем 0 и не больше , чем sizeof( Numbers ) / sizeof( *Numbers ) .

Ответ №2:

Я только что приготовила это для тебя.

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

int main(int argc, char** argv)
{
  //Clear screen
  system("cls");
  //Use system("clear"); on *NIX
  int input = 0;
  char number[][9] = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};
  char message[60] = "nEnter position (Enter 99 to exit!):";
  bool run = true; 
  while(run)
  {      
    //Printing out the result...
    printf("n");
    for (int i = 0; i < 9; i  )
        printf(" %c", number[i][0]);
    printf("n");
      
    printf("%s", message);
    scanf("%d", amp;input); 

    //Check if input is within array boundary
    if(input == 99)
    {
        printf("ntExiting...Bye :)n");
        return 0;
    }
    
    bool skip = true;
    //Check number input position
    if(input > 9 || input <= 0)    
    {
        strcpy(message, "nArray out of bound! Enter new position:");      
        skip = false;
    }

    if(skip)
    {
        //Convert user position to array index
        input = input - 1;

        // Assign 'K' to the selected array index
        // You can't use double quote when assigning, 
        // because the variable was declared as type char, not string.
        number[input][0] = 'K';
        
        strcpy(message, "nEnter position (Enter 99 to exit!):");
    }
    
    //Clear screen
    system("cls");
    //Use system("clear"); on *NIX
  }
  return 0;
}
 

Комментарии:

1. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их.