完整的代码:
#include<stdio.h>
#include<string.h>
void swap(char a[],int index,int len);
int main(){
char a[1000];
gets(a);
int len=strlen(a);
swap(a,0,len);
int count=0;
int index=0;
for(int i=0;i<len;i++){
if(a[i]!=' '){
count++;
}
else{
swap(a,index,count);
index=index+count+1;
count=0;
}
}
swap(a,index,count);
for(int i=0;i<len;i++){
printf("%c",a[i]);
}
return 0;
}
void swap(char a[],int index,int len){
char tmp;
for(int i=0;i<len/2;i++){
tmp=a[index+len-1-i];
a[index+len-1-i]=a[index+i];
a[index+i]=tmp;
}
}
难点:
1.这个题目对于我来说是较难的题目了。思路:两次反转,首先把整个句子反转,接下来再对句子中的每一个单词进行反转就行啦。
2.反转函数,首先你要知道反转的起始地址,接下来就是反转的末尾地址(这里可以通过反转的长度得知)。仔细研读上面的代码你会发现反转函数原来如此的简单。