我尝试用 C 语言编写一个程序,首先仅使用数组,然后再次使用指针来生成包含随机字母的字符串。我已经研究了许多其他问题,但并不完全是我想要完成的任务。我真的需要帮助。
函数 1 - 生成一个随机大写的字符串 大小写字母 A-Z,包含 40 个字符。
函数 2 - 让用户输入字符串的函数 带有随机大写字母和替换字符。
函数 3 - 从函数 1 中搜索字符串 1 并替换 字符串 2(用户输入)中任意字符的出现 替换字符。
输出 EX。
String 1- "AABBCCDDEEFFGGHHABCDEFGH"
String 2- "BE"
Replacement char- "3"
Filtered string- AA33CCDD33FFGGHHA3CD3FGH.
这是我到目前为止所拥有的,我不太擅长数组。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int s1 [41];
srand(time(NULL));
int i;
for (i = 0; i < 41; i++)
{
s1 [i] = rand();
}
return 0;
}
任何帮助将不胜感激。 非常感谢。
最佳答案
#include <stdio.h>
#include <stdlib.h>
void rand_str(char* txt, size_t sz)
{
int i=sz-1;
while( i --> 0 )
{
txt[i] = 'A' + rand() % 26;
}
printf("Random Str: %.*s\n", sz+i, txt);
}
void fn2(char* tgt, size_t sz, char* repl )
{
puts("String 2: ");
fgets(tgt, sz, stdin);
puts("Replacement Char: ");
*repl = getchar();
}
void search_replace(char* txt, char* tgt, char repl)
{
while(*tgt != '\0')
{
while ((strchr(txt, *tgt) ? (tgt[strchr(txt, *tgt)-tgt] = repl) : 0) == repl);
tgt++;
}
}
int main(void)
{
char txt[41] = {0};
char tgt[40] = {0};
char repl;
rand_str(txt, sizeof(txt));
fn2(tgt, sizeof(tgt), &repl);
search_replace(txt, tgt, repl);
return !printf("Filtered String: %s\n", txt);
}
关于C 编程。仅使用数组和指针生成随机字母字符串的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49642235/