我刚刚开始在学习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)
{
}
}
这就是我目前所拥有的,我只需要有关如何实际加扰字符串的帮助/建议。用户应该能够根据需要多次加扰字符串,直到他们输入特定字符,然后程序终止。感谢您提前提供任何帮助!
答案 0 :(得分:-2)
你要做的第一件事就是想一个简单的算法来改变字符串。
(请注意,scanf()
&amp; %s
会读取一个字符串,直到输入后找到一个空格。因此,'hello world'将只是'hello'。而是使用{{1}如果你需要获得偶数空格字符)。
简单的随机播放功能可能是:
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
循环中继续逐个调用它们。
在循环重启之前,只需向用户询问带有scanf()的while()
。
while循环应该是这样的:
char
希望这有所帮助。在这种情况下,对这个答案的简单投票对我有帮助。
干杯