Ich bin an einem Programm arbeiten, das mich eine neue Nachricht eingeben, fragt und die alten zu ersetzen, aber ich habe zu prüfen, ob die Nachricht länger als die letzten ist. Ich würde gerne eine Antwort bekommen, die meinem Programm ähnlich ist, denn das ist eine Lektion, die ich gerade lerne. Es fordert mich auf, die Größe des neuen Zeichens einzugeben, aber wenn ich es teste, nehme ich meine eingestellte Größe zum Testen.Testing Länge inputed Nachricht mit alter Nachricht
#include <stdio.h>
#include <stdlib.h>
void editedMessage(char* nmessage, int size){
char newMessage[];
printf("Enter a new message!\n");
gets_s(newMessage, sizeof(newMessage));
if (size > sizeof(newMessage)){
for (int i = 0; i < sizeof(newMessage); i++){
nmessage[i] = newMessage[i];
}
}
else {
printf("New message is too long.\n\n");
}
}
void main(){
char message[] = "This is some message!";
printf("Old message\n%s\n\n", message);
editedMessage(message, sizeof(message));
printf("New message\n\n%s\n\n", message);
}
EDIT: ich nächste Code bearbeitet, aber jetzt sagt ‚Stapel um die Variable‚message‘wurde beschädigt‘
char newMessage[256];
printf("Enter a new message!\n");
gets_s(newMessage, sizeof(newMessage));
int len = strlen(newMessage);
if (size > len){
for (int i = 0; i < sizeof(newMessage); i++){
nmessage[i] = newMessage[i];
}
}
Haben Sie versucht, den Wert dieser 'sizeof (newMessage)' zu drucken, um zu sehen, wie viel Platz Sie haben, um eine andere Nachricht einzugeben? Wenn ja, was sagt Ihnen das über die Definition 'char newMessage [];'? –
Ich muss testen, ob neue Nachricht länger ist oder nicht von der alten Nachricht –
Whoa! Ich verstehe das, aber Sie werden nicht einmal so weit kommen. –