这是在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);
}
Run Code Online (Sandbox Code Playgroud)
输入:abcd
输出:original_number = abcd
d
C
b
一种
rev_number = DCBA?
您需要将字符串终止为null。在要反转字符串的for循环之后的位置添加此行。
new_string[i]='\0';
for(i = 0; i<=l; i++){
new_string[i] = string[l-i];
printf("%c\n",new_string[i]);
}
new_string[i]='\0'; // add this
printf("rev_number = %s\n",new_string);
Run Code Online (Sandbox Code Playgroud)