题解 | 句子逆序

#include <stdio.h>
#include <string.h>
void swap(char *a,char*b){
    char temp;
    temp = *a;
    *a = *b;
    *b = temp;
}
void reverse(char *s,int start,int end){
    int i,j;
    i = start;j = end;
    while(i < j){
        swap(&s[i],&s[j]);
        i++;j--;
    }
}
void print_str(char *s){
    int i,j;
    int tag = 0;
    for(i = 0;s[i] != '\n';i++){
        if(s[i] == ' '){
            reverse(s,tag,i-1);
            s[i] = '\0';
            printf("%s ",s+tag);
            tag = i + 1;
        }
    }
}
int main() {
    char ch[1200];
    fgets(ch,sizeof(ch),stdin);
    int len = strlen(ch);
    reverse(ch,0,len - 2);
    ch[len - 1] = ' ';
    ch[len ] = '\n';
    print_str(ch);
    //printf("%d\n",len);
    //printf("%d",ch[5]);
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 14:35
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务