#include <string.h>#include <stdio.h>#include <time.h> #define BUFFER_LENGTH 257 int main(int argc, char *argv[]){ int leng = 128 ; int i, nu; char buffer[BUFFER_LENGTH]; printf("Please Input length for the String, Default is 128, The Maxest legth is 256:"); fgets(buffer, BUFFER_LENGTH, stdin); buffer[strlen(buffer)-1] = " " ; if(buffer[0] != " ") leng = atoi(buffer); srand((unsigned int)time(NULL)); bzero(buffer, BUFFER_LENGTH); for (i= 0; i< leng; i++) buffer[i] = "a" + ( 0+ (int)(26.0 *rand()/(RAND_MAX + 1.0))); buffer[strlen(buffer)] = " "; printf("The randm String is [ %s ]
", buffer); return 0;} 运行结果:$ ./rand Please Input length for the String, Default is 128, The Maxest legth is 256:8 The randm String is [ rdekbnxj ] $ ./rand Please Input length for the String, Default is 128, The Maxest legth is 256:36 The randm String is [ bvfrbvvhdcuwdoarefcrkytsntltawpbsusu ] 注意,需要使用“bzero(buffer, 257);”这条语句将缓存清空,否则生成的随机字符串中可能就会出现乱码的情况。五、shell指令生成字符串 生成全字符随机的字串:cat /dev/urandom | strings -n C | head -n L 生成数字加字母的随机字串:cat /dev/urandom | sed "s/[^a-zA-Z0-9]//g" | strings -n C | head -n L 其中C表示字符串的字符数,L表示要生成多少行字符。本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-03/128866.htm