C/C++ 字符串操作1---循环移位
来源:互联网 发布:怎么让淘宝店铺关掉 编辑:程序博客网 时间:2024/05/21 12:49
C/C++ 字符串操作1---字符串移位(出自《程序员面试宝典》)
题目:编写一个程序,作用是把一个char组成的字符串循环右移n位。
#include<stdio.h>#include<string.h>#include<stdlib.h>void loopmove1(char *str,int n);void loopmove2(char *str,int n);void loopmove3(char *str,int n);void main(){char str[1024];int n;scanf("%s%d",str,&n);loopmove3(str,n);printf("%s\n",str);}/*strcpy*/void loopmove1(char *str,int n){int len=strlen(str);int m=len-n;char *temp=(char *)calloc(len+1,sizeof(char));if(temp==NULL)exit(1);strcpy(temp,str+m);strcpy(temp+n,str);*(temp+len)='\0';strcpy(str,temp);}/*strncpy*/void loopmove2(char *str,int n){int len =strlen(str);int m=len-n;char *temp=(char *)calloc(len+1,sizeof(char));if(temp==NULL)exit(1);strncpy(temp,str+m,n);strncpy(temp+n,str,m);*(temp+len)='\0';strncpy(str,temp,len+1);}/*memcpy*/void loopmove3(char *str,int n){int len =strlen(str);int m=len-n;char *temp=(char *)calloc(len+1,sizeof(char));if(temp==NULL)exit(1);memcpy(temp,str+m,n);memcpy(temp+n,str,m);*(temp+len)='\0';memcpy(str,temp,len+1);}
运行结果:
0 0
- C/C++ 字符串操作1---循环移位
- C语言循环移位操作
- 【C语言】字符串右循环移位
- 【C语言】字符串右循环移位
- C语言循环移位及位操作
- C++/C移位操作
- c 语言循环移位
- 循环移位(c语言)
- c语言循环移位
- C语言中关于字符串左右循环移位的问题
- c中的移位操作
- C移位操作
- C语言移位操作
- c、java移位操作
- C/C++实现循环移位
- 循环移位c语言实现
- 编程实现字符串的循环移位操作
- 【C】移位操作 处理乘法
- 几秒前,几分钟前,几小时前,几天前,几月前,几年前的java实现
- 从C++到COM,学习笔记(3)
- HDU 1698 Just a Hook (线段树区间修改)
- CSU_1511_残缺的棋盘
- 数组非数字键名引号的必要性
- C/C++ 字符串操作1---循环移位
- LeetCode:Length of Last Word
- WINDOWS安装python3.X遇到的错误解决方法
- BN Topic Model 中如何判断conditional independence p(x,y|z)
- PHP CLI模式下的多进程应用
- 启动页面加载
- Java并发教程(Oracle官方资料)
- JAVA_SE系列:06.文档注释和API文档
- OpenStack之日志