Ich versuche Code zu schreiben, der den Benutzer für eine Zeichenfolge auffordert, und dann die Zeichenfolge zu drucken. Anschließend wird die Funktion 'initialize' verwendet, um jeden Wert im Array auf 'a' zu setzen, mit Ausnahme des letzten Werts, der in '\ 0' geändert wird. Die aufrufende Funktion wird dann die aktualisierte Zeichenfolge drucken. HierProblem mit dem Ändern des Werts von Array in Funktion mit Zeiger
ist der Code, den ich habe:
#include <stdio.h>
#include <string.h>
void initialize(char (*firstString)[50]);
void main(void)
{
char firstString[50];
printf("Enter a string: ");
scanf("%s", firstString);
printf("%s", firstString);
initialize(&firstString);
printf("%s", firstString);
}
void
initialize(char (*firstString)[50])
{
int i;
for (i = 0; i < 50; i++) {
*firstString[i] = 'a';
*firstString[49] = '\0';
}
}
Jede Hilfe sehr geschätzt wird.
EDIT:
Hier ist der Arbeitscode. Danke für die Hilfe!
#include <stdio.h>
#include <string.h>
void initialize(char firstString[50]);
void main(void)
{
char firstString[50];
printf("Enter a string: ");
scanf("%s", firstString);
printf("%s", firstString);
initialize(firstString);
printf("%s", firstString);
}
void
initialize(char firstString[50])
{
int i;
for (i = 0; i < 50; i++)
memset(firstString, 'a', 49);
firstString[49] = '\0';
}
Sie sollten eine Warnung mit -Wall -Wextra bekommen, die Ihnen sagt, was das Problem ist. – 2501
'* firstString [i]' und Priorität .... –
* firstSring [i] ist ein ** Zeiger verwenden nur 1 Zeiger – Schafwolle