首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教如何转化这样的字符串

2012-03-22 
请问怎么转化这样的字符串?请问怎么转化这样的字符串?如“abcde”变为“bcdea”,也就是说把第一个字母放到最后

请问怎么转化这样的字符串?
请问怎么转化这样的字符串?如“abcde ”变为“bcde a”,也就是说把第一个字母放到最后一个,其他的依次前移。
请给出源代码,谢谢!
我按下面这样做怎么不行呢?

假如已知 tempOut = "abcde "

int length = wcslen(tempOut);
TCHAR strOut[MAX_PATH] = {0};
for (int i = 1; i < length; i++)
{
wcscat(strOut,tempOut[i]);
}
wcscat(strOut,(const wchar_t *)tempOut[0]);

请问怎么写才正确?

[解决办法]

C# code
#include <algorithm>#include <vector>#include<iostream>#include<iterator>using namespace std;int main(int,char*[]){    char sz[]="abcde    ";    vector<char> v(sz,sz+sizeof(sz) );    v.push_back( *(v.begin()) );    v.erase(v.begin() );    copy(v.begin(),v.end(),ostream_iterator<char>(cout,"") );}
[解决办法]
楼主的代码太过于累赘,再说wcscat的用法也不对,wcscat(strOut,tempOut[i]); 第二个参数需const char*
还是参考下面的吧:


#include <string>
#include <iostream>
using namespace std;
int main()
{
char *tempOut="abcde ";
int length = strlen(tempOut); 
string strOut;
for (int i = 1; i < length; i++) 

strOut+=tempOut[i]; 

strOut+=tempOut[0];
cout<<strOut<<endl;
return 0;
}

[解决办法]
C/C++ code
#include  <algorithm> #include  <iostream> #include  <cstring> using namespace std; int main( void ) {     char p[] = "abcde    ";     size_t len = strlen( p );     rotate( p, p+1, p+len );     cout  < < p  < < endl; } 

热点排行