How to shuffle a string in C

1 Answer

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

void swap(char *a, char *b) {
    char temp = *a;
    *a = *b;
    *b = temp;
}

void shuffleString(char *str) {
    int len = strlen(str);
    
    srand(time(NULL)); 
    
    for (int i = len - 1; i > 0; i--) {
        int j = rand() % (i + 1);
        swap(&str[i], &str[j]);
    }
}

int main() {
    char str[] = "C is a general-purpose programming language";

    shuffleString(str);
    
    printf("%s\n", str);
    
    return 0;
}



/*
run:
  
r-ilmool  reasspg agmgrCea er pgnunagiepuna

*/

 



answered Nov 3, 2024 by avibootz

Related questions

1 answer 116 views
116 views asked Jan 4, 2023 by avibootz
1 answer 112 views
1 answer 180 views
1 answer 78 views
78 views asked Nov 4, 2024 by avibootz
2 answers 170 views
170 views asked Nov 1, 2021 by avibootz
2 answers 201 views
1 answer 182 views
182 views asked Feb 20, 2018 by avibootz
...