gpt4 book ai didi

C - 如何更改字符

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

我正在尝试用 C 语言制作一个用户名生成器。基本上,用户输入他/她的名字,程序会根据它生成一个名称。它随着大小写、数字和符号的变化而变化。但我找不到如何更改字符。比如,用户给出“Noone”,程序应该给出“N0one”,“N00ne”,“N00n3”,“noone”,“n0one”等。这是到目前为止的代码:

int main() {
char name[150];
char confirm[150];
char tru[15]="y";
char fals[15]="n";
SetConsoleTitle("Username Generator");
printf("Welcome to the username generator!\n");
while (1==1) {
printf("Type your name: ");
fgets(name,15,stdin);
printf("\nYour name is ");
puts(name);

printf("\nDo you confirm? ");
fgets(confirm,15,stdin);

if (strcmp(confirm,fals) == 0) {
continue;
}
if (strcmp(confirm,tru) == 0) {
printf(" \n Ok.");
break;
}
else {
printf("\ninvalid statement\n");
}
}
printf("Do you want case randomise?\n");
char csens[15];
fgets(csens,15,stdin);
if (strcmp(csens,tru) == 0){
printf("\nOk");
}
if (strcmp(csens,fals) == 0){
printf("\nOk");
}
printf("\nStarting to generate");
//missing part
printf("\nPress any button to exit");
getchar();

}

最佳答案

C 的 pseudo-random number generators 数量非常有限,但它仍然可用于您的用例。

简单地循环字符串,并生成随机的 01。如果 0 对当前字符不执行任何操作;如果 1 则检查当前字符是大写还是小写(例如使用 isupperislower )并相应地更改字符大小写(使用 touppertolower )。

如果您想随机选择另一个字母或数字,则使用第一个数字作为选择器来查看是否应更改字符,并生成 0 之间的第二个数字36。如果0则更改大小写,如果110则更改为相应的数字,或者如果1136 然后减去10 并更改为相应的字母。

您可以通过更改第一个数字的范围来轻松更改更改字符的机会的概率。例如,您可以生成 03(含)之间的数字,并在该值等于 0 时修改字符。那么你就有四分之一的机会修改角色,而不是二分之一。

至于获取特定范围内的数字,如果您稍微搜索一下,互联网上有很多示例。

<小时/>

如果您想将某些(或全部)字符修改为类似的外观字符(例如将'o''O'修改为'0'),类似于“leet代码”,那么一个可能的解决方案是为您想要翻译的所有字符保留一个查找表。然后,如果您决定“更改”角色,则在查找表中随机选择当前角色的相似角色。

这个查找表可以是一个结构数组,例如

struct
{
int original;
int leet;
} character_change_table[] = {
{ 'o', '0' },
{ 'e', '3' },
// Etc.
};

关于C - 如何更改字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51220429/

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