C 反向字符串代码忽略空格

C 反向字符串代码忽略空格,c,string,C,String,我已经写了一些代码,可以反转输入的字符串。尽管如此,在打印时,我只在第一个空格前获得字符串。我假设它与读取输入的函数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",

我已经写了一些代码,可以反转输入的字符串。尽管如此,在打印时,我只在第一个空格前获得字符串。我假设它与读取输入的函数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;
}
#包括
#包括
无效反向(字符*数组){
int i;
int j=(strlen(数组)-1);
int p=(strlen(数组));
char newArray[strlen(array)];
printf(“%i”,j);
对于(i=0;i
Change
scanf(“[^\n]”,&string)

scanf(“%[^\n]s”,字符串)

更改

scanf("[^\n]", &string);

添加到
for

for(i = 0; i < strlen(array); i++){
    newArray[i] = array[j];
    j--;
}
newArray[i]='\0';
for(i=0;i
newArray[i]='\0';
for(i = 0; i < strlen(array); i++){
    newArray[i] = array[j];
    j--;
}
newArray[i]='\0';