Erste C-Programmierklasse und Beginn der Programmierung. Wir lernen gerade Arrays in C und das ist eine Lernaufgabe, um Arrays zu verstehen und ein Programm zu bekommen, das eine zufällige Folge von Großbuchstaben erzeugt, danach eine Benutzereingabe von bis zu 20 Großbuchstaben verlangt und dann diese Buchstaben ersetzt zuvor zufällige Zeichenfolge mit einem * generiert. Ich kann die zufällige Zeichenfolge generieren, aber ich habe Probleme zu verstehen, was die beste Möglichkeit ist, diese Zeichenfolge an die zweite Funktion zu übergeben, um die ausgewählten Werte zu ersetzen.C Programm zum Generieren von zufälligen Großbuchstaben und Ersetzen von Werten
Kurz Beispiel:
Zufalls string: AOIHGGDGIYGDYFDYIGDGPIGD
Buchstaben eingeben zu ersetzen (bis zu 20 Buchstaben): GD
New string: AOIH **** IY YF * YI ** * PI
Unten ist der Code, den ich bisher habe. Jeder Rat darüber, wie und welcher Teil des folgenden Codes geändert werden kann, um dies zu erreichen, wird sehr geschätzt!
Strom teilweise fehlerhafte Ausgabe Beispiele:
JOAUZKKMJVNDFABILLKAWNWEKUEJGHKRCBDUYYRG
Zeichen eingeben ersetzt werden: W
Modifizierte String nach dem Austausch ist: & Theta; i.
AKNZPUWCCKNOIQADOYXZIVCGFUWTKRQOGSWSPFFS
Geben Sie Zeichen ersetzt werden: FSQ
Modified String nach dem Austausch ist: & Theta; i.
Vielen Dank für Ihre Zeit und Anleitung.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void getRandomStr();
void strreplace(char s1[], char chr, char repl_chr);
int main(int argc, const char argv[])
{
char s1[41], s2, repl_chr;
getRandomStr();
printf("%c\n");
gets(s1);
printf("\nEnter character to be replaced: ");
s2 = getchar();
fflush(stdin);
repl_chr = '*';
printf("\nModified string after replacement is: ");
strreplace(getRandomStr, s2, repl_chr);
getch();
return 0;
return 0;
}
void getRandomStr(){
char s1[41];
int i;
srand(time(NULL));
for (i = 0; i < 40; i++){
char c = rand() % 26 + 'A';
s1[i] = c;
}
for (i = 0; i < 40; i++){
putchar(s1[i]);
}
}
void strreplace(char s1[], char chr, char repl_chr)
{
int i = 0;
while (s1[i] != '\0')
{
if (s1[i] == chr)
{
s1[i] = repl_chr;
}
i++;
}
puts(s1);
return 0;
}
getRandomStr nie nul endet s1 – xvan
Die 's1' Array in' getRandomStr' ist nicht das gleiche 's1' Array, das in' main' erklärt wird. Wenn Sie den gleichen Namen in zwei verschiedenen Funktionen verwenden, werden zwei separate und nicht verwandte Variablen erstellt. – user3386109