gpt4 book ai didi

c - 使用 C 打乱字符串

转载 作者:行者123 更新时间:2023-11-30 18:15:24 25 4
gpt4 key购买 nike

在主要学习 Java 之后,我本学期刚刚开始学习 C,我被要求创建一个程序,允许用户输入字符串,然后打乱字符串中的字母。

#include <stdio.h> //Alows input/output operations
#include <stdlib.h> //Standard utility operations

int main(int argc, char *argv[]) //Main method
{
printf("------------------------\n");
printf("WELCOME TO THE SCRAMBLER\n");
printf("------------------------\n\n");

char userString[50]; //Declaring the user string
printf("Please input a String :> "); //Iforms the user to enter a string
scanf("%s", userString); //Allows the user to enter in a string

char targetLetter[2]; //Declaring the target letter
char replaceLetter[2]; //Declaring the replace letter

while(1)
{


}
}

这就是我目前所拥有的,我只需要有关如何实际打乱字符串的帮助/建议。用户应该能够根据需要多次打乱字符串,直到输入特定字符,然后程序终止。感谢您提前提供的任何帮助!

最佳答案

您要做的第一件事是想一个简单的算法来打乱字符串。

(请注意,scanf()%s 将读取字符串,直到按 Enter 键后找到空格为止。因此,“hello world”将只是“hello” '。如果您需要获取偶数空格字符,请改用 gets())。

一个简单的随机播放函数可以是:

void mix (char * string) {
//Get string length
int len = strlen(string);
int i;

char tmp;

for (i = 0; i < len / 2; i++) {
//Loop every char till the middle of the string
//Save the current char
tmp = string[i];
//Put in this position the opposite char in the string
string[i] = string[len - i];
//Replace the opposite char
string[len - i] = tmp;
}
}

//If you input hello you should get olleh

但这并不是您想要的,但我建议您创建两个或三个这样的函数,并在 while() 循环中继续一一调用它们。

在循环重新启动之前,只需使用 scanf() 询问用户一个 char

while 循环应该是这样的:

while (char != 'a') {
//Mix the string
mix_1();
mix_2();
mix_3();
//Ask char again
scanf("%c",&char);
//Loop goes on till char != a
}

希望这有帮助。在这种情况下,对此答案进行简单的投票对我来说确实很有帮助。

干杯

关于c - 使用 C 打乱字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28859294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com