單詞倒排(C語言源代碼)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char str1[150]={'\0'};
    char str2[50]={'\0'};
    char result[150]={'\0'};
    int m=0;
    
    gets(str1);
    
    int j=0;
    for(int i=strlen(str1)-1;i>=0;i--)
    {
        if(str1[i]==' ')
        {
            for(int k=strlen(str2)-1;k>=0;k--)
            {
                putchar(str2[k]);
            }
            
            //printf("%d",strlen(str2));
            
            int num=strlen(str2);
            
            for(int k=0;k<num;k++)//這裏改成strlen(str2)就錯誤了,錯誤的原因在於strlen是每一次算a[0]到a[i]!='\0'的長度,而我這裏又剛剛好是str2[k]='\0',所以就出現了問題
            {
                str2[k]='\0';
            }
            //不該相關聯的地方就拆開
            putchar(' ');
            j=0;
            continue;
        }
        
        
        str2[j]=str1[i];
        j++;
        
        
    }    
    
    puts(str2);
    
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章