#include<iostream>
#include<cstring>
using namespace std;
void backAround(char *s,char *p);
int main(int argc,char *argv[])
{
    char s[500],p[500];
    int i;
    int j;
    int len;
    cin.getline(s,500);//用来确定输入数据
   // cout<<s;
    len = strlen(s);//此处循环用来分离句子单词
    for(i=0,j=0;i<len;i++){

        if(s[i]!=' ')p[j++]=s[i];
        else {p[j]='\0';backAround(p,p+j-1);cout<<p<<" ";j=0;}
        }

    p[j]='\0';
    backAround(p,p+j-1);
    cout<<p;
    return 0;
}
void backAround(char *s,char *p)
{
    if(s>=p)
        return ;
    *s^=*p;//利用异或运算进行数据换位
    *p^=*s;
    *s^=*p;
    backAround(s+1,p-1);
}

代码有所参考:不记得是参考的哪个的了,在这里介绍cin.getline()函数使用方法,同时也是更新,cin.getline(s,sizeof,'a');输入一段字符串,以a结尾,但是不包括a.

下面贴上代码:

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 void backAround(char *s,char *p);
 5 int main(int argc,char *argv[])
 6 {
 7     char s[500];//p[500];
 8    // int i;
 9    // int j;
10     int len;
11     cin.getline(s,500,'.');//用来确定输入数据
12     cout<<s<<endl;
13     len = strlen(s);
14     cout << len << endl;
15 }

可以看出字符串输出没有 " ."同时strlen计算字符串没有把字符串结束的回车算进去,空格算的,

但是如果回车当作换行符使用的话是会算一个字符的.

目前来看strlen会计算当作换行符使用的回车键,但是不会计算字符串结束的回车键.