#include<iostream> | |
#include<cstring> | |
using namespace std; | |
int main() | |
{ | |
string sa,sb; | |
int length; | |
int i,j=0; | |
getline(cin,sa); | |
length=sa.length(); | |
for(i=length-1;i>=0;i--) | |
{ | |
if(sa[i]!=' ') | |
{ | |
sb[j]=sa[i]; | |
j++; | |
} | |
else | |
{ | |
for(j=j;j>=0;j--) | |
cout <<sb[j]; | |
cout <<' '; | |
j=0; | |
} | |
} | |
cout <<endl; | |
system("pause"); | |
return 0; | |
} |
1
sumhat 2015-04-13 21:45:03 +08:00
不要把 string 当成 char[] 来用
|
![]() |
2
init 2015-04-14 10:47:55 +08:00
第一条 你的思路大概是 逆置一个单词然后打印, 你有两个错误 在 j = j 那应该改为j = j -1;在有当i == 0的时候是不进入第二个for语句当中的, 因为的的判断条件是sa[i] = != ' ';
第二条 建议你学会单步调试 第三条 你可以尝试一下整体逆置然后再局部逆置 第四条 char [] 和string不一样, 我把你前面的改了 char sa[100]; char sb[100]; //string sa, sb; int length; int i, j = 0; cin.getline(sa, sizeof(sa), 'X'); //getline(cin, sa); // while (cin >> sa); //length = sa.length(); length = strlen(sa); |