Ich habe ein relativ einfaches Problem. Ein Benutzer soll das Programm ausführen, eine Nachricht von 30 Zeichen oder weniger eingeben und dann wird der Fall der einzelnen Buchstaben der Nachrichten umgeschaltet (Kleinbuchstaben werden in Großbuchstaben geschrieben und umgekehrt). Alles ist in Ordnung, außer dass der Fall geändert wird. Ich soll einen Zeiger auf ein Zeichen in einem Array verwenden und es als Funktionsargument an toggle_case übergeben. Bitte helfen Sie mir, wie Sie dies erreichen können. Hier ist der Code.übergeben Array-Element Zeiger in c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void read_message(char *message, int *message_size);
void toggle_case(char *character);
void count_cv(char* message);
int main() {
char message[30];
int message_size;
char *message_pointer;
message_pointer = message;
read_message(message, &message_size);
int i = 0;
for(i =0; i<30; i++){
toggle_case(&message_pointer[i]);
}
printf("New string: %s",message);
return 0;
}
void read_message(char *message, int *message_size){
printf("Enter your string (maximum 30 characters): ");
fgets(message, 30, stdin);
}
void toggle_case(char *character){
//check if character is a letter
if (isalpha(*character)) {
//Check if the character is upper case
if(isupper(*character)){
//convert the character to lower case
tolower(*character);
} else {
//Check if the character is lower case
//convert the character to upper case
toupper(*character);
}
}
}
void count_cv(char* message){
}
Was genau ist deine Schwierigkeit? Wird der Code nicht kompiliert, stürzt er ab, produziert er die falsche Ausgabe? Erklären Sie es uns, damit wir wissen, was Sie brauchen. Es sieht so aus, als ob Sie das Ergebnis nicht in dem ursprünglichen Zeichen in 'toggle_case' speichern. Wenn das Ihr Problem ist, dann weisen Sie entweder das Ergebnis innerhalb von 'toggle_case' zu oder geben Sie ein Ergebnis zurück, das der Aufrufer zuordnen kann. – kaylum
'message_size' scheint überhaupt nicht verwendet zu werden ... – dreamlax