题解 | 句子逆序

#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;
}

全部评论

相关推荐

程序员饺子:正常 我沟通了200多个 15个要简历 面试2个 全投的成都的小厂。很多看我是27直接不会了😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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