【发布时间】:2021-09-09 20:45:39
【问题描述】:
问题是当我尝试反转一个单词时,有些单词会打印出未指定的随机字符。我试图改变字符串大小,结果改变了(有些单词是随机字符,有些不是)
#include <stdio.h>
#include <string.h>
#define LEN 20
void reverse( char w[LEN]);
int main() {
char word[LEN];
reverse(word);
return 0;
}
void reverse (char w[LEN]){
char rev[LEN];
int i,j;
fgets(w, LEN, stdin);
for (i = 0, j = strlen(w)-1; i < strlen(w); i++, j--){
rev[j] = w[i];
}
printf("%s\n", rev);
return;
}
我的问题的一个例子是这样的:
输入:bathroom
输出:moorhtabp⬧⬧oz⬧
每次我执行程序时,相同的输入输出都会改变。
【问题讨论】:
-
fgets()将在字符串末尾添加\n -
@reshi 您忘记在数组 rev 后面附加零终止字符 '\0'。