标题:编写一个函数 loopMove 实现字符串的循环右移功能,怎么感觉只能一位找了很久 ...
只看楼主
dakou
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-8-20
结帖率:0
已结贴  问题点数:20 回复次数:5 
编写一个函数 loopMove 实现字符串的循环右移功能,怎么感觉只能一位找了很久都没有找到错误,大神求解
#include<stdio.h>
#include<string.h>
void loopmove(char* sta,int steps){
    int a=0,b=0;
    char s;
    for(a;a<steps;++a){
        for(b;b<strlen(sta)-1;++b){
           s   =   sta[strlen(sta)-1];
           sta[strlen(sta)-1]=sta[b];
           sta[b]=s;
        }
    }
    //return sta;
}
int main(){
    char str[]="hello";
    //char str1[]="abcdef";
    /*char* yy=*/loopmove(str,3);
    printf("%s\n",str);
}
搜索更多相关主题的帖子: 编写 str char int strlen 
2017-08-20 16:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
for(b=0;b<strlen(sta)-1;++b)   //内循环变量计步器没有设置初始化

DO IT YOURSELF !
2017-08-21 09:07
a1017075043
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:50
专家分:63
注 册:2015-6-29
得分:5 
程序代码:
#include<stdio.h>
#include<string.h>
void loopmove(char* sta,int steps){
    int a,b;
    char s;
    for(a=0;a<steps;++a){
        for(b=0;b<strlen(sta)-1;++b){
           s   =   sta[strlen(sta)-1];
           sta[strlen(sta)-1]=sta[b];
           sta[b]=s;
        }
    }
    //return sta;
}
int main(){
    char str[]="hello";
    //char str1[]="abcdef";
    /*char* yy=*/loopmove(str,3);
    printf("%s\n",str);
}

我是小白。。。。
2017-08-21 09:35
marlow
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:125
专家分:419
注 册:2016-7-18
得分:5 
回复 楼主 dakou
正确的循环右移算法如下:
程序代码:
void loopmove(char* str, int steps){
    int i = 0, j;
    char s;
    steps = steps % strlen(str);
    while(i++ < steps){
        s = *str;
        for(j = 0; *(str+j+1) != '\0'; j++)
            *(str + j) = *(str+j+1);
        *(str+j) = s;
    }
}

一切都在学习、尝试、摸索中
2017-08-21 22:19
marlow
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:125
专家分:419
注 册:2016-7-18
得分:0 
另外,有谁知道层次更高一些的C语言论坛?分享一下,多谢了!

一切都在学习、尝试、摸索中
2017-08-21 22:23
lmlm1001
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:107
专家分:550
注 册:2015-3-1
得分:5 
to 5楼:
        github社区、Linux社区、unix社区
2017-08-22 21:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480171-1-1.html




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

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