生成随机字符串并保存为文件

指定生成的字符串长度,并指明生成的字符串类型:

  • type 0:
    生成包含特殊字符的字符串;
  • type 1:
    生成只包含数字和大小写的字符串;

生成的字符保存到data.txt 中;

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    int rand_num = 0, final_num;
    int type, len, i;
    char *str = NULL;
    FILE *fp;

    scanf("%d%d", &type, &len);

    str = calloc(len+5, 1);
    if (str == NULL) {
        printf("memory calloc failed!\n");
        return -1;
    }
    srand (time(NULL));

    for (i = 0; i < len; i++) {

        rand_num = rand();
        if (type == 0)
        {
            final_num = rand_num % 106 + 21;
            *(str+i) = (char)final_num;     
        }
        else
        {
            final_num = rand_num % 3;
            switch(final_num)  
            {  
                case 0:  
                    *(str+ i) = rand_num%26 + 'a';   
                    break;  
                case 1:  
                    *(str+ i) = rand_num%26 + 'A';   
                     break;  
                case 2:  
                    *(str+ i) = rand_num%10 + '0';   
                    break;  
            }  
        }
    }
    printf("%s\n", str);

    fp =fopen("data.txt", "w");
    if (fp == NULL){
        printf("open file failed\n");
        return -1;
    }
    fwrite(str, 1, strlen(str), fp);
    fclose(fp); 

    free(str);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/u014436243/article/details/80279541