I have written a program to generate a random string, but when i am calling the function for two/more times,i am getting same random strings.
Please check the code below:
#include <string.h> #include <time.h> #include <stdio.h> #include <stdlib.h> char* randomstring(int length); int main() { char* randomstring(int); char *str, *str2; str = randomstring(3); str2 = randomstring(3); printf("final random string is %s and length is %s\n", str, str2); } char* randomstring(int length) { int len, len1, i = 0, j = 0; char *c; char *string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; len = strlen(string); len1 = length + 1; time_t t; c=(char*) calloc(len1, sizeof(char)); printf("final random string is %d \n", len); srand((unsigned) time(&t)); for(i = 0; i < length; i++) { j=rand() % len; c[i] = string[j]; } c[len1] = '\0'; return c; } Output :
final random string is 26 final random string is 26 final random string is BNQ and length is BNQ
malloc()and family inC..char* randomstring(int);at the beginning....