64,643
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
char str1[256] = "i am from hunan";
char str2[256] = "";
char *pDest = strrchr(str1, ' ');
while (pDest)
{
sprintf(str2, "%s%s ",str2, pDest+1); *pDest = '\0';
pDest = strrchr(str1, ' ');
}
sprintf(str2, "%s%s", str2, str1);
printf("%s\n", str2);
}
#include<iostream>
#include <algorithm>
using namespace std;
int main(void)
{
char p[] = "let's go";
reverse(p,p+strlen(p));
return 0;
}
#include <iostream>
#include <sstream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
vector<string> svec;
copy(istream_iterator<string>(istringstream (string("i am from hunan"))), istream_iterator<string>(), back_inserter(svec));
reverse(svec.begin(), svec.end());
copy(svec.begin(), svec.end(), ostream_iterator<string>(cout, " "));
system("pause");
}
typedef char *pchar;
void print_word(char *str)
{
while (*str!=' ' && *str!='\0')
{
cout << *str;
str++;
}
}
void pointer_array(char *str)
{
char *pos = str;
pchar *pch = new pchar[strlen(str)];
*pch = pos;
pch++;
while ('\0' != *pos)
{
if (' ' == *pos++)
{
*pch = pos;
pch++;
}
}
pch--;
while (1)
{
print_word(*pch);
cout << " ";
if (*pch == str)
{
break;
}
pch--;
}
delete []pch;
}
int main(int argc, char **argv)
{
char chStr[100] = "i am from hunan";
pointer_array(chStr);
}
//来个更简单的
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
char p[]= "I am from shandong";
for (int i =0,b = 1; i < strlen(p)/2; i++,b++)
{
char c = *(p+i);
*(p+i) = *(p+ strlen(p)-b);
*(p+ strlen(p)-b) = c;
}
cout<< p;
system("pause");
return 0;
}
string str = "i am from hunan";
for (int i = 0; i < str.length()/2; i++) //所有逆序
{
char temp = str[i];
str[i] = str[str.length() - i - 1];
str[str.length() - 1 - i] = temp;
}
for (int i = 0; i < str.length(); i++)
{
int j = i;
while (str[j] != ' '&& str[j] != '\0') j++;//单词尾
j -= 1;
for (int k = i; k <= (j + i)/2; k++) //单词再逆序
{
char temp = str[k];
str[k] = str[j - (k - i)];
str[j - (k - i)] = temp;
}
i = j + 1;//下一个单词
}
void invert_word(char *pstart, char *pend)
{
int len = pend - pstart;
for (int i=0; i<len/2; i++)
{
std::swap(*pstart, *(pend-1));
pstart ++;
pend --;
}
}
void invert_string(char *pch)
{
invert_word(pch, pch+strlen(pch));
char *pre = pch, *post = NULL;
while (NULL != (post = ::strchr(pre, ' ')))
{
invert_word(pre, post);
pre = post + 1;
}
}
int main(int argc, char **argv)
{
char chStr[100] = "i am from hunan";
invert_string(chStr);
}
void revs(char *s)
{
char *p1, *p2, c;
if( s == NULL || *s == 0 ) return;
p1 = s;
p2 = s + strlen(s);
while( --p2 > p1 )
{
c = *p1;
*p1 = *p2;
*p2 = c;
p1++;
}
}
char* p = "i am from hunan";
int len = strlen(p);
for (int i= len-1;i>=0;i--)
{
printf("%c",*(p+i));
}