C语言:字符串循环右移
程序员文章站
2022-04-30 22:45:08
...
编写一个程序,作用是把一个字符串从末尾开始循环右移n个,如"abcdef",n=3,则输出'defabc";"12345",n=2,则输出"45123";
思路:用循环,每次都把最后一个字符元素挪到首元素的位子,其余元素位子后移一个,共n次。
void main()
{int len,i,n;
char a[80];
printf("please input an integer and a string\n");
scanf("%d%s",&n,a);
len=strlen(a)-1;
while(n--)
{char c=a[len];
for(i=len;i>0;i--)
a[i]=a[i-1];
a[0]=c;}
printf("%s",a);
}
总结:主要是循环,while循环共n次,先把尾元素a[len]保留下来赋值给c;再用一个内循环for()把所有元素后移一,空出来的a[0]用c补。
我最先想到的方法是用两个并列的for()语句:一个操作后n个元素使其左移到相应位子,一个操作其余元素使其右移到相应位子,然后赋值给新定义的数组b,输出b。
可是存在一个有乱码后缀的问题,
因为是字符串,所以会有'\0'的存在,不知道怎么处理?求指教。
上一篇: 微人事第四天:跨域问题
下一篇: 安卓学习入门之通过WebView打开网页
推荐阅读
-
C语言实现去除字符串首尾空格
-
c语言字符串替换函数(教你c语言实现字符串调换)
-
C语言的字符串处理函数strlen()
-
C语言的字符串输出fputs()函数
-
C语言判断字符串是否为数字
-
C语言笔记 08_函数指针&回调函数&字符串&结构体&位域
-
C语言_分支与循环语句使用技巧
-
C语言编程笔记丨SDS:一个简易动态字符串库
-
C语言——常用标准输入输出函数 scanf(), printf(), gets(), puts(), getchar(), putchar(); 字符串拷贝函数 strcpy(), strncpy(), strchr(), strstr()函数用法特点
-
在字符串中找出第一个只出现一次的字符。经典C语言例题