随机播放用户输入的字符串

use*_*249 0 c random shuffle c-strings

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char rand(char x);
int main()
{
char input[80] = {0};
char rando[80] = {0};
char choice = 0;
char rando2[80] = {0};
if(strlen(input) >= 10 && strlen(input) <= 80); {
    printf("Please enter a string with 10-80 characters: ");
    scanf("%s", input);
    printf("Orginal string: %s\n", input);
    rando = my_rand(input);
    printf("New string: %s\n", rando);  }
else{
    return 0; }
printf("Would you like to shuffle this string again?(y or n): ");
scanf("%c\n", &choice);
if( choice == 'y') {
    rando2 = my_rand(rando);
    printf("New string: %s\n", rando2);
        }
else if {
    printf("Would you like to shuffle another string?(y or n): ");
    scanf("%c\n", &choice2); }
    if(choice2 == 'y') {
        printf("Please enter a string with 10-80 characters: ");
        scanf("%s", input2);
        printf("Original string: %s\n", input2);
        char rando3 = my_rand(rando2);
        printf("New string: %s\n", rando3); }
    else:

        return 0;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

大家好,我的目标是按照自己的意愿多次随机播放用户输入字符串,提示是否继续.我很难搞清楚如何洗牌,任何人都可以伸出援助之手吗?

这是示例输出:

Please enter a string with 10-80 characters:
initialnaivepassword

Original string: initialnaivepassword

New string: ntlvdiepnaaorsiiiwas

Would you like to shuffle this string again:y

New string: saiiwndrvpaiioneslat

Would you like to shuffle this string again:n

Would you like to shuffle another string? :y
Please enter a string with 10-80 characters:
anothernaivepassword

Original string: anothernaivepassword

New string: svdoanoprhsterneaaiw

Would you like to shuffle this string again:y

New string: eaapnrtwhrosvidosaen

Would you like to shuffle this string again:n

Would you like to shuffle another string? :n
Run Code Online (Sandbox Code Playgroud)

Bal*_*ick 5

这里有一些代码可以进行洗牌,希望它有用:

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

void shuffle(char *);

int main(int argc, char *argv[])
{
    char sBuff[1024];
    char sFinish[10];
    srand(time(NULL));

    printf("Enter a string:\n");
    scanf("%s",sBuff);
    do
    {
        shuffle(sBuff);
        printf("\nShuffled string is:\n%s\n\n",sBuff);
        printf("Suffle again? (y/n)\n");
        scanf("%s",sFinish);
    }
    while (strcmp(sFinish,"y") == 0);

    return 0;
}

void shuffle(char *sBuff)
{
    int i, random, length = strlen(sBuff);
    char temp;

    for (i = length-1; i > 0; i--)
    {
        random = rand()%(i+1);
        temp = sBuff[random];
        sBuff[random] = sBuff[i];
        sBuff[i] = temp;
    }
}
Run Code Online (Sandbox Code Playgroud)