C语言 如何随机生成字符串

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
main()
{
int i,key[1000]={0};
char *str="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,./;\"'<>?";
srand(time(NULL));
for(i=0;i<1000;i++)
key[i] = str[rand()%72];
printf("key is:",key[i]);
}
这是我写的程序,能build,但是无法随机输出字符串
还想问一下如方程encrypted[i] = original[i] + key[i]中,是不是要求各字符串长度相同才可以运行此方程

问题在这句:

printf("key is:",key[i]);

你没有指定printf的格式,改为:

printf("key is:%d ",key[i]);


 又:不一定每个字符串一样长啊~。 任意一个字符串(长度、内容各异)都可以通过类似的公式进行加密。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-19
漏了输出格式%c
for(i=0;i<1000;i++) {
key[i] = str[rand()%72];
printf("key is:%c",key[i]);
};
========
encrypted[i] = original[i] + key[i];
这是单个字符的运算,只要下标 i 没超界 就可以运算。本回答被提问者和网友采纳
相似回答