c語言生成隨機字元串
❶ 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語言寫一個產生字元串的隨機排列的程序
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char *strs[5] = {"26537", "monkey", "USA", "$&", "給我一首歌的時間"};
char flag[5] = {0};
srand(time(NULL));
for (int i = 0; i < 5; i++)
{
int k;
for (k = rand() % 5; flag[k]; k = rand() % 5)
;
printf("%s", strs[k]);
flag[k] = 1;
}
printf("\n");
}
❸ C語言 隨機字元串怎麼弄
直接產生隨機的字元串的庫函數是沒有的,
但是可以這么實現:
1.產生固定長度的隨機的字元串
主要就是產生固定個數的隨機字元,
那麼就簡單了,用兩組隨機數:
一組:隨機產生0~25的整數num,然後用'a'+num來賦值小寫字母,'A'+num來賦值大寫字母
一組:隨機產生0,1,產生0,用'a'來和num相加,生成小寫字母;產生1,用'A'來和num相加,生成大寫字母;
2.產生不固定長度的隨機的字元串
就是在上面的產生固定長度的隨機的字元串的基礎上,在引入一組隨機數,來控制字元串長度
代碼如下:
1.產生固定長度的隨機的字元串
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 10//固定長度為10
void main()
{
int flag,charLengt;
int i,j,k=0;
char ch[N+1]={NULL};
srand((unsigned)time(NULL));
for(i=0;i<10;i++)//生成10個String吧
{
for(j=0;j<N;j++)
{
flag=rand()%2;
if(flag) ch[k++]='A'+rand()%26;
else ch[k++]='a'+rand()%26;
}
ch[k]='\0';
k=0;
printf("%s\n",ch);
}
getch();
}
不定長的自己參照著寫吧
❹ c語言隨機生成1000行隨機字元串,每行由10個字元組成,是由大寫字母和數字組成
#include<stdio.h>
#include"stdlib.h"
#include"time.h"
intmain(intargc,char*argv[]){
ints,i;
srand((unsigned)time(NULL));
for(i=0;i<1000;i++){
for(s=0;s<10;s++)
printf("%c",rand()%2?rand()%26+65:rand()%10+48);
printf(" ");
}
return0;
}
❺ 怎麼用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]='