我写了一些应该反转输入字符串的代码。虽然,在印刷时我只能将字符串放到第一个空格。我假设它与读取输入的函数scanf相关。
#include <stdio.h>
#include <string.h>
void reverse(char *array){
int i;
int j = (strlen(array) - 1);
int p = (strlen(array));
char newArray[strlen(array)];
printf("%i", j);
for(i = 0; i < strlen(array); i++){
newArray[i] = array[j];
j--;
}
printf("%s", newArray);
//printf("%i", strlen(newArray));
/* int a;
for(a = 0; a < p; a++){
printf("%c", newArray[a]);*/
}
}
int main(){
char string[50];
scanf("[^\n]", &string);
reverse(string);
return 0;
}
答案 0 :(得分:0)
将scanf("[^\n]", &string);
更改为
scanf("%[^\n]s", string);
答案 1 :(得分:0)
更改
scanf("[^\n]", &string);
到
scanf("%[^\n]", string);
和
newArray[i]='\0';
在for
for(i = 0; i < strlen(array); i++){
newArray[i] = array[j];
j--;
}
newArray[i]='\0';