反向字符串代码忽略空格

时间:2014-03-13 20:37:58

标签: 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", 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;
}

2 个答案:

答案 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';