北邮oj反转单词
本题的方法就是先将字符串总体反转一次,然后从头遍历,遇到空格或‘\0’再将这个单词单独反转1次。
#include<bits/stdc++.h>
using namespace std;
int main(){
char str[1005];
while(gets(str)!=NULL){//gets()遇到结尾返回NULL
int left = 0,right = strlen(str)-1;
while(left<right){
char a = str[left];
str[left] = str[right];
str[right] = a;
left++;
right--;
}
left = 0;
for(int i=0;i<=strlen(str);i++){
if(str[i]==' '||str[i]=='\0'){
right = i-1;
while(left<right){
char a = str[left];
str[left] = str[right];
str[right] = a;
left++;
right--;
}
left = i+1;//left要移到i后面1位,
}
}
puts(str);
}
return 0;
}