使用C对字符串进行加扰

时间:2015-03-04 16:11:46

标签: c string scramble

我刚刚开始在学习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)
  {


  }
}

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

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

希望这有所帮助。在这种情况下,对这个答案的简单投票对我有帮助。

干杯