نمایش نتایج 1 تا 9 از 9

نام تاپیک: تولید رشته تصادفی در C

  1. #1

    Question تولید رشته تصادفی در C

    سلام خسته نباشید
    چطوری یک رشته تصادفی (حروف+ اعداد) با طول ۱۰ کاراکتر بسازیم که تکراری نباشه
    فقط نمیخوام رشته رو چاپ کنه ، میخوام بریزه داخل متغیر
    میخوام به زبان C باشه.
    خیلی هم سایت عالی دارید . دمتون گرم
    آخرین ویرایش به وسیله pixcel : چهارشنبه 17 اردیبهشت 1399 در 00:44 صبح

  2. #2

    نقل قول: تولید رشته تصادفی در C

    نقل قول نوشته شده توسط pixcel مشاهده تاپیک
    سلام خسته نباشید
    چطوری یک رشته تصادفی (حروف+ اعداد) با طول ۱۰ کاراکتر بسازیم
    فقط نمیخوام رشته رو چاپ کنه ، میخوام بریزه داخل متغیر
    میخوام به زبان C باشه.
    خیلی هم سایت عالی دارید . دمتون گرم
    برای تولید اعداد تصادفی از srand و rand استفاده میشه که برای توضیحاتشون به این تاپیک ها مراجعه کنید :
    فرق srand با rand در چیست؟
    طرز استفاده از تابع rand

    چون آخر رشته با کاراکتر NULL مشخص میشه، برای رشته 10 کاراکتری به آرایه 11 کاراکتری نیاز داریم.
    اول با srand یک seed تصادفی انتخاب می کنیم که با timer بدست میاد.
    بعد داخل حلقه 10 بار از بین 26 حرف انگلیسی یا 10 رقم یکی رو به رشته اضافه می کنیم.
    و نهایتا آخر رشته رو با 0 (NULL) مشخص می کنیم.

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

    int main()
    {
    char s[11];
    int i;
    srand(time(0));
    for (i = 0; i < 10;i++)
    s[i] = (rand() % 2 == 0) ? (rand() % 26 + 65) : (rand() % 10 + 48);
    s[10] = 0;
    printf(s);
    return 0;
    }

  3. #3

    نقل قول: تولید رشته تصادفی در C

    نقل قول نوشته شده توسط the king مشاهده تاپیک
    برای تولید اعداد تصادفی از srand و rand استفاده میشه که برای توضیحاتشون به این تاپیک ها مراجعه کنید :
    فرق srand با rand در چیست؟
    طرز استفاده از تابع rand

    چون آخر رشته با کاراکتر NULL مشخص میشه، برای رشته 10 کاراکتری به آرایه 11 کاراکتری نیاز داریم.
    اول با srand یک seed تصادفی انتخاب می کنیم که با timer بدست میاد.
    بعد داخل حلقه 10 بار از بین 26 حرف انگلیسی یا 10 رقم یکی رو به رشته اضافه می کنیم.
    و نهایتا آخر رشته رو با 0 (NULL) مشخص می کنیم.

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

    int main()
    {
    char s[11];
    int i;
    srand(time(0));
    for (i = 0; i < 10;i++)
    s[i] = (rand() % 2 == 0) ? (rand() % 26 + 65) : (rand() % 10 + 48);
    s[10] = 0;
    printf(s);
    return 0;
    }

    من میخوام هم حروف تصادفی باشه هم اعداد ، یه همچین رشته ای میخوام تولید کنم:2am46f7g1v

    برای مثال : این قطعه کد اعداد و حروف تصادفی تولید میکنه ولی برا اندرویده

    int random_string_length =14;
    String[] all_characters ={
    "a","b","c","d","e","f","g","h","i","j","k","l","m",
    "n","o","p","q","r","s","t","u","v","w","x","y","z",
    "0","1","2","3","4","5","6","7","8","9",
    " "
    };
    int all_characters_length = all_characters.length;

    int min =0;
    int max = all_characters_length-1;

    String random_string ="";
    for(int x =1; x < random_string_length+1; x = x+1){
    Random r =newRandom();
    int random_number = r.nextInt(max - min +1)+ min;
    String random_character = all_characters[random_number];
    random_string = random_string + random_character;
    }

    تقریبا به همین شکل ولی در C نوشته بشه ، ولی بجای اینکه عبارت رو چاپ کنه ، بریزه توی یک متغیر

  4. #4

    نقل قول: تولید رشته تصادفی در C

    نقل قول نوشته شده توسط pixcel مشاهده تاپیک
    من میخوام هم حروف تصادفی باشه هم اعداد ، یه همچین رشته ای میخوام تولید کنم:2am46f7g1v

    برای مثال : این قطعه کد اعداد و حروف تصادفی تولید میکنه ولی برا اندرویده

    int random_string_length =14;
    String[] all_characters ={
    "a","b","c","d","e","f","g","h","i","j","k","l","m",
    "n","o","p","q","r","s","t","u","v","w","x","y","z",
    "0","1","2","3","4","5","6","7","8","9",
    " "
    };
    int all_characters_length = all_characters.length;

    int min =0;
    int max = all_characters_length-1;

    String random_string ="";
    for(int x =1; x < random_string_length+1; x = x+1){
    Random r =newRandom();
    int random_number = r.nextInt(max - min +1)+ min;
    String random_character = all_characters[random_number];
    random_string = random_string + random_character;
    }

    تقریبا به همین شکل ولی در C نوشته بشه ، ولی بجای اینکه عبارت رو چاپ کنه ، بریزه توی یک متغیر
    کدی که نوشتم به قول شما می ریزه تو متغیر s، در کد 65 کد حرف A است (حرف بزرگ) و رقم و حروف بزرگ ایجاد می کنه، 65 رو با 97 جایگزین کنید، میشه رقم و حروف کوچک :

    char s[11];
    int i;
    srand(time(0));
    for (i = 0; i < 10;i++)
    s[i] = (rand() % 2 == 0) ? (rand() % 26 + 97) : (rand() % 10 + 48);
    s[10] = 0;

  5. #5

    نقل قول: تولید رشته تصادفی در C

    نقل قول نوشته شده توسط the king مشاهده تاپیک
    کدی که نوشتم به قول شما می ریزه تو متغیر s، در کد 65 کد حرف A است (حرف بزرگ) و رقم و حروف بزرگ ایجاد می کنه، 65 رو با 97 جایگزین کنید، میشه رقم و حروف کوچک :

    char s[11];
    int i;
    srand(time(0));
    for (i = 0; i < 10;i++)
    s[i] = (rand() % 2 == 0) ? (rand() % 26 + 97) : (rand() % 10 + 48);
    s[10] = 0;
    آقا خیلی ممنون ، خیلی کمک کرد
    جسارتا یه سوال دیگه دارم

    وقتی رشته رو به صورت تصادفی تولید میکنه ، میخوام ترکیبی از حروف و عدد باشه ، نمیخوام کاراکتر داشته باشه. فقط حروف و عدد

    یعنی فقط میخوام از این کاراکتر ها رشته تصادفی بسازه :"0123456789abcdefghigklmnopqrstuvwxyz"
    چه کنم ؟

  6. #6

    نقل قول: تولید رشته تصادفی در C

    نقل قول نوشته شده توسط pixcel مشاهده تاپیک
    آقا خیلی ممنون ، خیلی کمک کرد
    جسارتا یه سوال دیگه دارم

    وقتی رشته رو به صورت تصادفی تولید میکنه ، میخوام ترکیبی از حروف و عدد باشه ، نمیخوام کاراکتر داشته باشه. فقط حروف و عدد

    یعنی فقط میخوام از این کاراکتر ها رشته تصادفی بسازه :"0123456789abcdefghigklmnopqrstuvwxyz"
    چه کنم ؟
    صورت سوال تغییری نکرده که کد جدید بخواد، همونه که در پست اول مطرح کردید. تعجب می کنم که درخواستی می کنید اما کدی که نوشته میشه رو بررسی نمی کنید.
    اینکه میگید نمیخوام کاراکتر داشته باشه مثل اینه که بگید میخوام ترکیبی از سیب و پرتقال باشه، نمی خوام میوه داشته باشه، فقط سیب و پرتقال.
    حروف و عدد کاراکتر هستند دیگه، بدون کاراکتر رشته ای در کار نیست.
    شما یکبار زحمت بکشید و کدی که تحویل گرفته اید رو اجرا کنید و ببینید خروجی اش چیه و با چیزی که خواستید ئه یا نه.

  7. #7

    نقل قول: تولید رشته تصادفی در C

    نقل قول نوشته شده توسط the king مشاهده تاپیک
    صورت سوال تغییری نکرده که کد جدید بخواد، همونه که در پست اول مطرح کردید. تعجب می کنم که درخواستی می کنید اما کدی که نوشته میشه رو بررسی نمی کنید.
    اینکه میگید نمیخوام کاراکتر داشته باشه مثل اینه که بگید میخوام ترکیبی از سیب و پرتقال باشه، نمی خوام میوه داشته باشه، فقط سیب و پرتقال.
    حروف و عدد کاراکتر هستند دیگه، بدون کاراکتر رشته ای در کار نیست.
    شما یکبار زحمت بکشید و کدی که تحویل گرفته اید رو اجرا کنید و ببینید خروجی اش چیه و با چیزی که خواستید ئه یا نه.
    خروجی که به من میده اینه :7e5\Tar[`x

    ولی نمیخوام علامت سوال و سینک تکس و ... داشته باشه
    میخوام حروف انگلیسی و عدد باشه فقط

  8. #8

    نقل قول: تولید رشته تصادفی در C

    نقل قول نوشته شده توسط pixcel مشاهده تاپیک
    خروجی که به من میده اینه :7e5\Tar[`x

    ولی نمیخوام علامت سوال و سینک تکس و ... داشته باشه
    میخوام حروف انگلیسی و عدد باشه فقط
    مطمئن هستید؟ یک جای کار ایراد داره. نباید خارج از محدوده کاراکتری دریافت کنید. یک نسخه کد و فایل اجرایی اش رو پیوست کردم.
    RandomC.zip
    preview.png

    بجای 97 و 48 کاراکتر 'a' و '0' رو امتحان کنید، قاعدتا معادل هم هستند :

    char s[11];
    int i;
    srand(time(0));
    for (i = 0; i < 10;i++)
    s[i] = (rand() % 2 == 0) ? (rand() % 26 + 'a') : (rand() % 10 + '0');
    s[10] = 0;

    و البته می توانید غیر مستقیم از یک رشته دیگر کاراکتر ها رو انتخاب کنید :

    char chs[] = "0123456789abcdefghijklmnopqrstuvwxyz";
    char s[11];
    int i;
    srand(time(0));
    for (i = 0; i < 10;i++)
    s[i] = chs[rand() % 36];
    s[10] = 0;

  9. #9

    نقل قول: تولید رشته تصادفی در C

    نقل قول نوشته شده توسط the king مشاهده تاپیک
    مطمئن هستید؟ یک جای کار ایراد داره. نباید خارج از محدوده کاراکتری دریافت کنید. یک نسخه کد و فایل اجرایی اش رو پیوست کردم.
    RandomC.zip
    preview.png

    بجای 97 و 48 کاراکتر 'a' و '0' رو امتحان کنید، قاعدتا معادل هم هستند :

    char s[11];
    int i;
    srand(time(0));
    for (i = 0; i < 10;i++)
    s[i] = (rand() % 2 == 0) ? (rand() % 26 + 'a') : (rand() % 10 + '0');
    s[10] = 0;

    و البته می توانید غیر مستقیم از یک رشته دیگر کاراکتر ها رو انتخاب کنید :

    char chs[] = "0123456789abcdefghijklmnopqrstuvwxyz";
    char s[11];
    int i;
    srand(time(0));
    for (i = 0; i < 10;i++)
    s[i] = chs[rand() % 36];
    s[10] = 0;

    آقا دستت درد نکنه درست شد

تاپیک های مشابه

  1. پاسخ: 5
    آخرین پست: دوشنبه 29 آذر 1395, 10:32 صبح
  2. پاسخ: 5
    آخرین پست: شنبه 18 مهر 1394, 23:57 عصر
  3. آموزش: اتصال دو xml service برای اتصال اتوماسیون اداری دو شهر از طریق ECE
    نوشته شده توسط chavir در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 0
    آخرین پست: دوشنبه 20 دی 1389, 12:14 عصر
  4. تصحیح کد تولید اعداد تصادفی غیر تکراری
    نوشته شده توسط bayatb در بخش C#‎‎
    پاسخ: 11
    آخرین پست: جمعه 10 دی 1389, 20:30 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •