题解 | #句子逆序#
句子逆序
http://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3
句子逆序:C语言解法
首先取出字符串中的每个字符,并把字符存到一个字符数组里,记录所有已存的字符数量,再记录单词的字符数量,遇到空格或者结束符时,获得上的单词的指针,和单词数量进行翻转,之后清空单词的字符数量,最后得到的字符数组按顺序输出字符即可。
#include<stdio.h>
void reverse(char *s,int num){
int left = 0, right = num-1;
while(left<right){
char temp = s[left];
s[left++] = s[right];
s[right--] = temp;
}
}
int main(){
char str[10000] = {0};
char c = 0;
int size = 0,len = 0;
while(~scanf("%c",&c)){
if(c == ' ' || c == '\n'){
reverse(&str[size - len],len);
len = -1;
}
str[size++] = c;
len++;
}
size--;
while(size>=0){
printf("%c",str[--size]);
}
}