【发布时间】:2017-02-09 06:32:49
【问题描述】:
这是一个在 C 中反转字符串的简单代码,最后一个 printf 语句打印相反的顺序,但最后有一个问号,而我只想打印反转的字符串而不是问号 我该如何解决?
#include<stdio.h>
#include<string.h>
int main(){
char new_string[100];
char string[100];
scanf("%s",string);
printf("original_number = %s\n",string);
int i;
int l = strlen(string)-1;
for(i = 0; i<=l; i++){
new_string[i] = string[l-i];
printf("%c\n",new_string[i]);
}
printf("rev_number = %s\n",new_string);
}
输入:abcd
输出: original_number = abcd
d
c
b
一个
rev_number = dcba?
【问题讨论】:
-
char new_string[100];-->char new_string[100]={0}; -
哇! ,它成功了,你能告诉我背后的逻辑吗 char new_string[100]={0};
-
由于
new_string尚未初始化,所以显示垃圾。需要预先用0初始化或者在字符串后面加上null-terminator('\0')。