我正在通过KN King的"C编程:现代方法".该程序取自项目1b的"第12节 - 指针和数组".粗略地说,目标是:编写一个读取消息的程序,然后打印消息的反向.将消息存储在数组中,并使用指针跟踪数组中的当前位置.
目前,我只是试图在我尝试向后打印之前正常打印消息.我很沮丧,因为我的printMessage()函数与此处的 print_message()函数是1:1 ,但是当程序运行并输入一些文本时,它只打印出一个空白行.如果printMessage()的for循环中的行更改为'printf("%c",*p);则会发生这种情况.同样.
这是我的代码:
#include <stdio.h>
#define MAX_MESSAGE_LENGTH 100
int readMessage(char msg[]);
void printMessage(char msg[], int len);
/* finish later
void printMessageReversed(char msg[], int len); */
int main(void){
int msg_length;
char c[MAX_MESSAGE_LENGTH];
printf("Enter a message: ");
msg_length = readMessage(c);
printf("Length: %d", msg_length);
printf("\nMessage: ");
printMessage(c, msg_length);
return 0;
}
int readMessage(char msg[]){
int i;
for(i = 0; (*msg = getchar()) != '\n'; i++);
return i;
}
void printMessage(char msg[], int len){
char *p;
for(p = …Run Code Online (Sandbox Code Playgroud)