C 编程。仅使用数组和指针生成随机字母字符串的函数

标签 c arrays function pointers

我尝试用 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/

相关文章:

python - 我如何让主函数使用另一个函数?

复制 argv 并检查它是否为回文

c - 将整数指针设置为整数数组并将参数传递给 pthread_create

arrays - 最多k个相邻的1s(最大值限制邻居)

c - char *a[10] 的 strcat 问题

regex - 在 Haskell 中插入 regexp() SQLite 函数 (Database.SQLite3 ,"direct-sqlite")

c - 返回字符串数组的函数 C

c - 结构和 malloc 代码得到奇怪的输出

c - Opus 严格标志

java - 尝试设置单个位置时整个数组被重置