C++中怎么将用户输入的字符串打乱输出?
比如说用户输入Chris打乱输出可能就是hCCis这里每个字母未必只出现一次,但是输出的字母数量要和原单词长度一样。求大神指导!...
比如说用户输入Chris打乱
输出可能就是hCCis
这里每个字母未必只出现一次,但是输出的字母数量要和原单词长度一样。求大神指导! 展开
输出可能就是hCCis
这里每个字母未必只出现一次,但是输出的字母数量要和原单词长度一样。求大神指导! 展开
3个回答
展开全部
简单的方法是用数组接收用户输入,获取其长度n,数组下标从0开始到n-1,只要字母不为'z'或'Z' , 则数组[n]+1, 再输出。
或者用随机数,范围在大于等于'a' && 小于等于'z' || 大于等于'A' && 小于等于'Z' 来替换掉数组中各位,次数为n
或者用随机数,范围在大于等于'a' && 小于等于'z' || 大于等于'A' && 小于等于'Z' 来替换掉数组中各位,次数为n
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <time.h>
#include <string.h>
int main(){
char ch[10] = "Chris";
char res[10];
int arr[10] = {0};
int len = strlen(ch), tmp_len, i, j, k, n;
srand(time(0));
n = 0;
for(i = 0; i < len; ++i){
tmp_len = strlen(ch);
int tmp_pos = rand() % tmp_len;
res[n++] = ch[tmp_pos];
k = 0;
for(j = 0; j < tmp_len; ++j)
if(j != tmp_pos)
ch[k++] = ch[j];
ch[k] = 0;
}
res[n] = 0;
printf("result = %s\n", res);
return 0;
}
随手写的 时间复杂度不太好 就这样吧
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主要一个函数Random(0,输入字符串长度-1),以获取结果串每个位置上的随机字母就没什么了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询