Моя цель с помощью этой программы - включить входные данные пользователей в своего рода интерактивную/рандомизированную историю, но я не уверен, как я должен получать входные данные от пользователей, чтобы они находились между *ptrDescription
, *ptrBeginning
, *ptrMiddle
, и *ptrEnd
. Любая помощь будет очень, очень ценится!Интерактивная рандомизированная программа в C
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#include <string.h>
#include <ctype.h>
int main(void){
int i;
char name[20];
char color[20];
int age;
char sentence[1];
//array of pointers to char arrays
char *ptrDescription[]={"the painfully handsome","the one and only","who seemed much older than"};
char *ptrBeginning[]={"was blissfully ignoring","could clearly see","had no idea"};
char *ptrMiddle[]={"the huge truck","the falling meteor","the bucket of milk","the mailman","the most powerful wizard"};
char *ptrEnd[]={"that was barreling toward them.","on the horizon."};
srand(time(NULL));
printf("Enter your first name: ");
scanf("%s", &name);
printf("\nEnter your age: ");
scanf("%d", &age);
printf("\nEnter your favorite color: ");
scanf("%s", &color);
for (i = 0; i < 1; i++)
{
//strcpy(sentence,ptrDescription[rand()%3]);
//strcat(sentence," ");
//strcat(sentence,ptrBeginning[rand()%3]);
//strcat(sentence," ");
//strcat(sentence,ptrMiddle[rand()%5]);
//strcat(sentence," ");
//strcat(sentence,ptrEnd[rand()%2]);
//strcat(sentence,".");
//sentence[0]=toupper(sentence[0]);
puts(sentence);
}
getch();
return 0;
}
EDIT:
Я редактировал раздел моего кода, так что сразу после for (i = 0; i < 1; i++)
он теперь выглядит следующим образом:
snprintf(sentence, sizeof sentence,"%s, %s %d year old, %s %s %s %s", name, ptrDescription[rand()%3], age,ptrBeginning[rand()%3], ptrMiddle[rand()%5], ptrEnd[rand()%2]);
Есть тонны странных символов после предложения в выход, как японские персонажи и прочее. Я не уверен, почему они там. Это то, что он выглядит точно так:
«Введите ваше имя: Джастин
Введите свой возраст: 20 Джастин, высокомерный 20-летний, целенаправленно игнорируя самый мощный мастер, который катился к ним.汽 $ 0HβHζ (テ フ フ フ フ フ フ フ フ フ フ フ フ フ H · (D キ HH 広 $ 0 陏 & · 汽 $ 0 タ Hζ (テ フ フ フ フ フ フ フ フ フ フ フ フ フ フ フ H WH · H 櫛 H · t9HνH テ < "
Каждый знает, как я могу избавиться от них?
Hi Justin. Что вы хотите сделать? Заставить пользователя установить семя для функции rand()? Или использовать пользовательский ввод вместо rand()? – mescarra
Я стараюсь, чтобы результат был чем-то вроде: «Джастин, мучительно красивый 20-летний, был блаженно игнорировал ведро молока, которое было болото к ним», а затем рассказ будет случайным образом каждый раз, когда программа была повторно запущена , –
'* ptrDescription' и т. Д. - это первые элементы их соответствующих массивов (а не указатели на!). Не уверен, что вы действительно этого хотите, я подозреваю, что вы хотите ** длину ** ** массивов ** 'ptrDescription' и т. Д. – Olaf