用不同的方法实现字符串平移问题

来源:互联网 发布:淘宝极有家装修日记 编辑:程序博客网 时间:2024/05/22 13:25

例如:ABDJKSLS,输入平移的个数2,平移的结果为DJKSLSAB

方法一:

/*将字符串的前n个值平移到字符串的后面*/#include <stdio.h>#include <string.h>void move(char *str,int m){int i = 0;int j = 0;char temp;int len = strlen(str);for(i = 0;i < m;i++){temp = str[0];for(j = 1;j < len;j++){str[j-1] = str[j];}str[len-1] = temp;}}int main(){char str[100] = {0};int m = 0;printf("please input string:\n");scanf("%s",str);printf("please input m:\n");scanf("%d",&m);move(str,m);printf("move result:%s\n",str);return 0;}


方法二:

/*将字符串的前n个值平移到字符串的后面*/#include <stdio.h>#include <string.h>void move(char *str,int m,char *result){int len = strlen(str);int i = 0;char *a = str;int k = 0;for(i = m;i < len;i++){result[k++]=str[i];}str = a;for(i = 0;i < m;i++){result[k++] = str[i];}result[k] = '\0';}int main(){char str[100] = {0};char result[100] = {0};int m = 0;printf("please input string:\n");scanf("%s",str);printf("please input m:\n");scanf("%d",&m);move(str,m,result);printf("move result:%s\n",result);return 0;}



0 0
原创粉丝点击