·Ï»°²»¶à˵£¬ÎÒÃÇÖ±½ÓÉÏ´úÂ룺
¡¡¡¡// test.cpp : ¶¨Òå¿ØÖÆÌ¨Ó¦ÓóÌÐòµÄÈë¿Úµã¡£
¡¡¡¡//
¡¡¡¡#include "stdafx.h"
¡¡¡¡#include "iostream"
¡¡¡¡using namespace std;
¡¡¡¡void reverse(char * ps, char * pn);
¡¡¡¡char * strprocess(char * str);
¡¡¡¡char * strCopy(char * dst, const char * src);
¡¡¡¡int main(int argc, char * argv[])
¡¡¡¡{
¡¡¡¡char str[] = "could you tell me how to complete this problem";
¡¡¡¡char * p = strprocess(str);
¡¡¡¡cout<
¡¡¡¡char * p2 = (char *)malloc(strlen(str));
¡¡¡¡p2 = strCopy(p2, str);
¡¡¡¡cout<¡¡¡¡system("pause");
¡¡¡¡return 0;
¡¡¡¡}
¡¡¡¡char * strprocess(char * str)
¡¡¡¡{
¡¡¡¡if(str == NULL || *str == '\0')
¡¡¡¡return NULL;
¡¡¡¡char * ps = str;
¡¡¡¡char * pn = str;
¡¡¡¡while(*pn != '\0') pn++;
¡¡¡¡pn--;
¡¡¡¡reverse(ps, pn);
¡¡¡¡ps = str;
¡¡¡¡while(*ps != '\0')
¡¡¡¡{
¡¡¡¡pn = ps;
¡¡¡¡while(*pn != '\0' && *pn != ' ' ) pn++;
¡¡¡¡reverse(ps, pn - 1);
¡¡¡¡if(*pn == '\0') break;
¡¡¡¡ps = pn + 1;
¡¡¡¡}
¡¡¡¡return str;
¡¡¡¡}
¡¡¡¡void reverse(char * ps, char * pn)
¡¡¡¡{
¡¡¡¡while(ps <= pn)
¡¡¡¡{
¡¡¡¡char temp = *ps;
¡¡¡¡*ps = *pn;
¡¡¡¡*pn = temp;
¡¡¡¡ps++;
¡¡¡¡pn--;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡// copy str
¡¡¡¡char * strCopy(char * dst, const char * src)
¡¡¡¡{
¡¡¡¡if(dst == NULL || src == NULL) return NULL;
¡¡¡¡char * strDest = dst;
¡¡¡¡while((*dst++ = *src++)!='\0');
¡¡¡¡return strDest;
¡¡¡¡}