У меня есть функция с именем Login (), которая читает имя пользователя (например, "John"
), а затем создает пароль, который является самим именем пользователя, причем каждая буква заглавная или верхняя или нижняя (например, "JoHn"
) внутри новоговызывается функция password()
. Однако когда я пытаюсь напечатать пароль в Login () как оператор возврата из password()
, он печатает ноль;
Это функция, которая возвращает пароль:
void Login()
{
char passwd[20];
char name[20];
printf(" Please enter your username : \n");
do
{
scanf(" %s",&name);
}while(strcmp(name,"John")!=0);
printf("Your password is : %s\n",password(name));
printf("Please enter your password : \n");
do
{
scanf(" %s",&passwd);
}while(strcmp(passwd,password(name))!=0);
}
И эта функция возвращает пароль:
char password( char pass[])
{
int i;
int k;
for(i=0;i<strlen(pass);i++)
{
k= rand()%2;
if(k==1)
{
pass[i]=toupper(pass[i]);
}
else{
pass[i]=tolower(pass[i]);
}
}
return pass;
}
Теперь, когда я запускаю Login()
в main
, я получаю
"Ваш пароль:(null) "
Как я могу решить эту проблему?