Я посмотрел это в Интернете, и я мог только найти темы для C ++, в то время как я использую C, поэтому я прихожу и спрашиваю, извините, если дублирую.
Я все еще учусь и пытаюсь понять
Я только что узнал о strcpy и strcmp, но мой мозг просто не может понять, почему следующий код не будет работать;
void ifelse();
char nametype[100];
char typeofname[100];
char truth[100];
int main() {
char name[100];
int age;
printf("\n Print \n");
ifelse();
printf("Enter your name: ");
fgets(name, 100, stdin);
printf("Enter your age: ");
scanf("%d", &age);
if (age > 50) {
strcpy(truth[100], "and you are an old person.");
}
if (age < 50) {
strcpy(truth[100], "and you are relatively young.");
}
else {
strcpy(truth[100], "and you're a middle age person with issues...");
}
printf("Hello, your %s is %s, %s", nametype, name, truth);
return 0;
}
void ifelse() {
printf("Enter your name type (firstname/lastname): ");
fgets(typeofname, 100, stdin);
if (strcmp(typeofname, "firstname") == 0) {
strcpy(nametype[100], "first name");
}
if (strcmp(typeofname, "lastname") == 0) {
strcpy(nametype[100], "last name");
}
}
в операторах if и else я получаю сообщение об ошибке при попытке скопировать строку под названием "истина", я также пытался набрать strncpy на всякий случай, но нет.
предполагается, что она продолжит работу функции print внизу, но либо не будет печатать переменные, либо выдаст ошибку распределения