#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. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их.