| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 726 人关注过本帖
标题:看看这道题啊,好难啊!!
只看楼主 加入收藏
fanfan320
Rank: 3Rank: 3
来 自:运城
等 级:论坛游侠
帖 子:82
专家分:104
注 册:2010-5-12
结帖率:63.64%
收藏
已结贴  问题点数:20 回复次数:8 
看看这道题啊,好难啊!!
编写一个函数,作用是把一个char组成的字符串循环右移N个。比如原来是“abcdefghi”,如果N=2,移位后是“hiabcdefg”.
搜索更多相关主题的帖子: abcdefghi 字符串 
2010-05-24 14:51
lscalin
Rank: 6Rank: 6
来 自:周总理故乡
等 级:侠之大者
威 望:1
帖 子:91
专家分:405
注 册:2010-5-10
收藏
得分:5 
给个笨法子,设置两个字符串,N是几,就把前几个放一个字串里,后几个放另一个字串里,然后把后一个字串放前面,两个再合并不就行了
瞎弄了一个,不过用的是string ,不是char,对不对不要笑话呀  
程序代码:
#include <string>
#include <iostream>
int main( )
{
   using namespace std;
   string  str1 ("abcdefghijklmn");
   cout << "The original string str1 is: \n " << str1
        << endl << endl;


 
   int n;
   cin >> n;

   basic_string <char> str2 = str1.substr ( 0 , str1.size()-n );
   cout << "The substring str1 copied is: " << str2
        << endl << endl;
   basic_string <char> str3= str1.substr (str1.size()-n );
   cout << "The substring str1 copied is :" << str3
    << endl << endl;
   string str4;
   str4 = str3 + str2;
   cout << "New str:" << str4 <<endl;

 
  


   system("pause");
}



[ 本帖最后由 lscalin 于 2010-5-24 18:11 编辑 ]

灵感不是曹操,说来就来。
2010-05-24 16:06
yjj634041926
Rank: 2
等 级:论坛游民
帖 子:36
专家分:76
注 册:2010-4-15
收藏
得分:1 
用两个数组试试。。。。
2010-05-24 17:29
fanfan320
Rank: 3Rank: 3
来 自:运城
等 级:论坛游侠
帖 子:82
专家分:104
注 册:2010-5-12
收藏
得分:0 
回复 2楼 lscalin
我用的是C++6.0,不能编译过啊
2010-05-24 18:23
ciweitou163
Rank: 7Rank: 7Rank: 7
来 自:河北 石家庄
等 级:黑侠
威 望:1
帖 子:144
专家分:528
注 册:2008-10-4
收藏
得分:5 
2楼的方法不错,我这里也献丑了。
程序代码:
#include<iostream>
using namespace std;

int main(void)
{
    int i;
    char a[]={'a','b','c','d','e','f','g'};
    char b[]={};
    cout<<"源数组:"<<endl;
    for(int i=0;i<7;i++)
        cout<<a[i]<<"\t";
    cout<<endl;
    char flag;
    cout<<"你想左移还是右移?"<<endl;
    cout<<"左移输入'<',右移输入'>'"<<endl;
    cin>>flag;
    cout<<"你想移动的位数"<<endl;
    cin>>i;
    if('<'==flag)
        for(int j=0;j<7;j++)
            b[j]=a[(j+i)%7];
    else
        for(int j=0;j<7;j++)
            b[j]=a[(j+7-i)%7];
    cout<<"移动后的数组"<<endl;
    for(int i=0;i<7;i++)
        cout<<b[i]<<"\t";
    return 0;
}

今天太晚了,有不明白的,我明天给注释吧!我要马上回去了。

[ 本帖最后由 ciweitou163 于 2010-5-24 19:54 编辑 ]


  • 满眼生机转化钧;天工人巧日争新。
2010-05-24 19:53
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:4 
// Note:Your choice is C++ IDE#include <iostream>using namespace std;const int size = 20;  //定义数组大小int main()     {    char a[size];         char b[size];        //用于存储转换后的字符串            while(1)      //用于反复执行    {        cout<<"请输入一个字符串:";        cin>>a;        int len = strlen(a);    //求取字符串的长度                int n;        cout<<"请输入N值:";        cin>>n;        while(n > len)        {            cout<<"输入过大,请重新输入:";            cin>>n;        }                int n;        cout<<"请输入N值:";        cin>>n;        while(n > len)        {            cout<<"输入过大,请重新输入:";            cin>>n;        }                for(int i = 0; i < len; i++)        {            if(i < n)            {                b[i] = a[len-n+i];    //前n个            }            if(i >= n)        <span class="Apple-tab-span" style="white
2010-05-24 21:42
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:5 
程序代码:
// Note:Your choice is C++ IDE
#include <iostream>
using namespace std;
const int size = 20;  //定义数组大小,方便修改
int main()    
{
    char a[size];    
    char b[size];        //用于存储转换后的字符串   
   
    while(1)      //用于反复执行
    {
        cout<<"请输入一个字符串:";
        cin>>a;
        int len = strlen(a);    //求取字符串的长度
       
        int n;
        cout<<"请输入N值:";
        cin>>n;
        while(n > len)
        {
            cout<<"输入过大,请重新输入:";
            cin>>n;
        }
       
        for(int i = 0; i < len; i++)
        {
            if(i < n)
            {
                b[i] = a[len-n+i];    //前n个
            }
            if(i >= n)
            {
                b[i] = a[i-n];   //n个以后
            }
        }
        b[len] = '\0';   //不要忘记字符串结尾的'\0',标记字符串的结束
       
        cout<<"排列后的字符串:";
        cout<<b<<endl;
    }
    return 0;
}
用到了另一个数组存取新的字符串,也用到了字符串的赋值这一知识点。刚才悲剧了,死也点不开贴代码的工具窗口...
2010-05-24 21:53
fanfan320
Rank: 3Rank: 3
来 自:运城
等 级:论坛游侠
帖 子:82
专家分:104
注 册:2010-5-12
收藏
得分:0 
有这么多大侠来帮忙,小弟真的很感谢,其实我一直是在想,如何用strcpy函数来实现,不知道大家有没兴趣?
2010-05-25 11:32
lscalin
Rank: 6Rank: 6
来 自:周总理故乡
等 级:侠之大者
威 望:1
帖 子:91
专家分:405
注 册:2010-5-10
收藏
得分:0 
用STRCPY跟我那个差不多,用STRLEN取长度

灵感不是曹操,说来就来。
2010-05-25 14:47
快速回复:看看这道题啊,好难啊!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042804 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved