c語言隨機生成字元串
Ⅰ c語言 如何隨機生成字元串
問題在這句:
printf("keyis:",key[i]);
你沒有指定printf的格式,改為:
printf("keyis:%d",key[i]);
又:不一定每個字元串一樣長啊~。 任意一個字元串(長度、內容各異)都可以通過類似的公式進行加密。
Ⅱ C語言如何隨機輸出一個字元串
隨機輸出一個字元串,其實就是要隨機生成一個字元串並輸出。
要實現這一點,可以通過rand函數來實現。
具體示例代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#defineSTR_LEN10//定義隨機輸出的字元串長度。
#defineCHAR_MIN'a'
#defineCHAR_MAX'z'//定義輸出隨機字元串每個字元的最大最小值。
intmain()
{
charstr[STR_LEN+1]={0};
inti;
srand(time(NULL));//通過時間函數設置隨機數種子,使得每次運行結果隨機。
for(i=0;i<STR_LEN;i++)
{
str[i]=rand()%(CHAR_MAX-CHAR_MIN+1)+CHAR_MIN;//生成要求范圍內的隨機數。
}
printf("%s ",str);//輸出生成的隨機數。
return0;
}
以上代碼實現了隨機生成一個長度為10,全部字元均為小寫英文字元的字元串並輸出。
核心語句為str[i] = rand()%(CHAR_MAX-CHAR_MIN + 1) + CHAR_MIN;
其中,
rand()獲取一個隨機數,
rand()%(CHAR_MAX-CHAR_MIN + 1)使結果位於[0, CHAR_MAX-CHAR_MIN]之內。這里利用了模除的特性。
這樣最終的結果就是位於[CHAR_MIN, CHAR_MAX]之間的字元了,從而實現控制生成隨機數據范圍的效果。
Ⅲ c語言。生成1000行隨機字元串,每行由10個大寫字母隨機組成。這個代碼怎麼寫,怎麼生成隨機大寫字
#include<cstdio>
#include<cstring>
#include<cstdlib> //隨機函數包含在這個裡面
#include<ctime> //這是時間庫
usingnamespacestd;
intmain(){
freopen("rand.out","w",stdout);
for(inti=1;i<=1000;i++){
for(intj=1;j<=10;j++){
srand(time(0)/*這里調用了系統時間,其實沒多大用...*/+i+j+i*j*i);//這相當於向隨機中添加種子,添加的越復雜越好,種子要能每次不一樣最好;
printf("%c",rand()%26+'A'); //這個rand()便是生成的隨機數,用%26+'A'可以保證它在'A'到'Z'的范圍內
}
printf(" ");
}
return0;
}
這是所謂的偽隨機辦法,但基本夠用了,用一個能運行的打開運行,然後就會輸出到rand.out文件中去
Ⅳ 怎麼用c語言隨機生成一串字元串,字元串要求8-16位並且包含大小寫字母.數字.和符號
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{int i,n,j;
char s[20];
srand(time(NULL));
printf("產生20組字元串: ");
for(j=0;j<20;j++){
s[0]=65+rand()%26;//以下4行確保含有大小寫字母、數字和符號
s[1]=48+rand()%10;
s[2]=33+rand()%15;
s[3]=97+rand()%26;
n=rand()%9+4;
for(i=4;i<n+4;i++)//保證總長度為8~16
s[i]=33+rand()%94;
s[i]='