请问如何随机产生一串字符串????
请问如何随机产生一串字符串???? 问题点数:0、回复次数:4Top
1 楼bager(柏哥)回复于 2003-06-03 17:53:45 得分 0
可以随机生成字符串的长度,再随机生成字符串的每个字符。Top
2 楼li_qingsong(铭心)回复于 2003-06-03 17:54:26 得分 0
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{
int i;
/* Seed the random-number generator with current time so that
* the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );
/* Display 10 numbers. */
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
}
Output
6929
8026
21987
30734
20587
6699
22034
25051
7988
10104
可以定义CString 完成数字到字符的转换!
可以使用itoa()完成数字到字符的转换!
明白了?Top
3 楼coohai(海)回复于 2003-06-03 17:54:54 得分 0
产生随机数时定个范围,这个范围就是字符的取值范围。Top
4 楼deverxp(abcdefg)回复于 2003-06-03 18:01:59 得分 0
用我的这个,
// iType: 0 -> all syblos allowed
// 1 -> 字母与数字
// 2 -> 字母
// 3 -> 数字
CString RandomString( int iLength, int iType )
{
CString strReturn;
CString strLocal;
for( int i = 0 ; i < iLength ; ++i )
{
int iNumber;
// Seed the random-number generator with TickCount so that
// the numbers will be different every time we run.
srand( (unsigned int)( (i+1)*iLength*GetTickCount() ) );
switch( iType )
{
case 1:
iNumber = rand()%122;
if( 48 > iNumber )
iNumber += 48;
if( ( 57 < iNumber ) && ( 65 > iNumber ) )
iNumber += 7;
if( ( 90 < iNumber ) && ( 97 > iNumber ) )
iNumber += 6;
strReturn += (char)iNumber;
break;
case 2:
iNumber = rand()%122;
if( 65 > iNumber )
iNumber = 65 + iNumber%56;
if( ( 90 < iNumber ) && ( 97 > iNumber ) )
iNumber += 6;
strReturn += (char)iNumber;
break;
case 3:
strLocal.Format("%i", rand()%9 );
strReturn += strLocal;
break;
default:
strReturn += (char)rand();
break;
}
}
return strReturn;
}Top




