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

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

我先讲一下我的算法,要是有需要我可以写启昌写看。

就用牺牲空间的方法,将这个数组复制。再直接截取。

例如字符为abcdefghijklmn要循环左派饥移10位。

1。先复制悄羡扒得到abcdefghijklmnabcdefghijklmn。

2。直接从第十位开始往后取字符串的长度位就是结果。abcdefghij

klmnabcdefghij

klmn。

中间那段就是了。

#include

<stdio.h>

#include

<string.h>

#define

N

81

void

readwriteDAT()

void

chg(char

*s)

{

int

i,t,j=0,n=strlen(s)/*i循环控制变量前前橘,j用于数组中移动元素的位置悔橘*/

for

(i=0i<1i++)/*因为要把最后一个移到最后,所以慧团只需i<1即可*/

{

t=s[0]/*把数组中第一个元素先保存给临时变量t*/

for

(j=0j<n-1j++)/*下面循环的功能是将除第一个元素外的(即s[0])字符串中的字符循环左移一个位置*/

s[j]=s[j+1]

s[j]=t/*最后将第一个字符,给最后一个字符*/

}

}

main()

{

char

a[

N

]

printf("Enter

a

string

:

")

gets(a)

printf("The

original

string

is

:

")

puts(a)

chg(a)

printf("The

string

after

modified

:

")

puts(a)

}

注意:本程序如不是在二级C模拟系统下写代码,在验证时请以上面代码为准!

Python位 *** 作运算符【左移右移】

num1 << num2        #num1左移num2位       

num1 谨滚>> num2        #num1右移num2位

例:

45左移1位:

45 << 1

90

45的二进制为:101101

那么左移一位:1011010

1011010的十进制为90

60右移2位:

60 >> 稿晌枯2

15

60的二进制为:111100

那么右移键洞两位:001111

001111的十进制为15


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8281687.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存