永发信息网

用c语言输出一个整数n和一字符串,将字符串循环左移n个字符

答案:3  悬赏:30  手机版
解决时间 2021-03-04 18:46
用c语言输出一个整数n和一字符串,将字符串循环左移n个字符
最佳答案
使用带头结点的环形链表存储字符串,从链表头开始做N次L->next=L->next->next;L=L->next;此时记录N=L;并输出链表内容(注意跳过头结点,头结点无字符信息),直至L==N;
全部回答
我先讲一下我的算法,要是有需要我可以写写看。
就用牺牲空间的方法,将这个数组复制。再直接截取。
例如字符串为abcdefghijklmn要循环左移10位。
1。先复制得到abcdefghijklmnabcdefghijklmn。
2。直接从第十位开始往后取字符串的长度位就是结果。abcdefghij klmnabcdefghij klmn。
中间那段就是了。追问希望写一下谢谢追答那你是希望最后得到一个目标数组里面是结果是么?追问我想看看编程的过程谢谢追答大概写了一下,但是请自己注意一下字符串的边界问题,我完全没有处理。只是提前声明了200的char数组,要是输入的字符串长于99了,就会出错了。
楼主还可以看看3楼的意见,看看你具体什么需求。
#include
#include
int main()
{
printf( "请输入目标字符串和想移动的位数 例如 abcd 1,用空格隔开\n" );
char a[200];
int n;
scanf("%s %d",&a,&n);
int len = strlen(a);
for(int i = 0;i {
a[len+i] = a[i];
}
//output
n = n%len;
for(int i = n;i {
printf("%c",a[i]);
}
return 0;
}
不用这么复杂,你用模运行符(%)就可以,不用再复制的:
算法如下
字符串: s ="abcdefghijklmn";
左移量: n = 10;
输出:
int i,j=strlen(s);
for(i=n; i prinft("%c", s[ i%j ] );
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么反驳“你永远活在我们心中”
天津定做沐浴桶?天津哪里可以买沐浴桶?定做
lostwinds怎么没有了中文
关于单位为职工缴存的住房公积金的列支方式,
哪些人农村土地不能确权农村土地确权对象如何
新涌北街/西华路(路口)在什么地方啊,我要过
我做梦梦见自己再哭,第二天我妈说我晚上真的
空调用制冷剂r410a能否用r406a代换
乐山教堂在哪啊,谁知道具体位置啊
77年属蛇的男人
顺风画框地址有知道的么?有点事想过去
汽车毂刹车与盘刹车的优缺点
薄膜测厚仪如何使用 具体检测方法有哪些
恃势之刑怎么化解
It me two hours to finish the work last n
推荐资讯
什么是非新机制教师
如何检验溶液中是否含三价铁离子
润丰格美商务酒店地址在哪,我要去那里办事
将2.24L标准状况下的HCL气体溶于水得到500mL
elana champion of lust 怎么玩
一部小说 女主角家收养男主角 女主对板栗过敏
为什么我的索尼笔记本无法识别外接键盘
iphone5s拆卸屏幕会弄坏指纹吗?
分手后把我删了见面一直看着我说明什么
一个男生说我引爆了他,是什么意思?
落地窗宽高比例 房间墙面高3.3米,宽5.24米,设
关于金融期货特点的描述,正确的有()。Ⅰ.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?