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