#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
void fanzhuan1(char* str1, int numb) //定义无返回值函数fanzhuan1,用来反转字符串;
{
for (int i = 0; i < numb / 2; i++)
{
char temp = str1[0 + i];
str1[0 + i] = str1[numb - 1-i];
str1[numb - 1-i] = temp;
}
}
int a = 0; //定义用来遍历字符串后保存输入字符数;
int main()
{
char* str = (char*)malloc(256); //定义str指向的内存地址存储输入的字符串;
if (str == NULL) //如果输入溢出return 0结束;
{
cout << "!!!" << endl;
return 0;
} //没有溢出继续运行;
cin.getline(str,256); //输入字符串,保存至str所指向的内存地址;
while (str[a] != '\0') //遍历str,确认输入了多少个字符;
{
a++;
}
fanzhuan1(str ,a); //字符串整体反转;
int start = 0;
for (int i=0;i<a;i++) //字符串内单词反转;
{
if(str[i] == ' ')
{
fanzhuan1(str+start, i-start);
start=i+1;
}
}
if (start < a) //判断是否全部反转;
{
fanzhuan1(str + start, a - start); //反转最后一位;
}
cout<<a<<endl <<str << endl; //打印字符数&反转后的全部字符串;
free(str); //释放内存防止泄露;
return 0;
} //end;
大神们帮忙看看那还能改改 还有我这野生程序有没有什么需要注意的!