国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

C語言三種方法實現(xiàn)字符串右旋

2019-11-08 03:02:22
字體:
供稿:網(wǎng)友

方法一:三步旋轉(zhuǎn)法

#define _CRT_SECURE_NO_WARNINGS 1  #include<stdio.h>  #include<stdlib.h>  #include<string.h>  #include<assert.h>  //三步旋轉(zhuǎn)法void filp(char *left, char *right){	assert(left);	assert(right);	while (left<right)	{		char temp = *left;		*left = *right;		*right = temp;		left++;		right--;	}}void RightHand(char *str, int len){	assert(str);	int num = strlen(str);	filp(str, str + num - len - 1);         //edcbafj	filp(str + num - len, str + num - 1);   //edcbajf	filp(str, str + num - 1);               //fjabcde}int main(){	char a[] = "abcdefj";	RightHand(a, 2);	PRintf("%s/n", a);	system("pause");	return 0;}

方法二:移項法

#define _CRT_SECURE_NO_WARNINGS 1  #include<stdio.h>  #include<stdlib.h>  #include<string.h>  #include<assert.h>  //移項法void RightHand(char *str, int len){	assert(str);	int i = 0;	int num = 0;	char temp = 0;	for (i = 0; i < len; i++)	{		num = strlen(str);		num--;		temp = str[num];		while (num>0)		{			str[num] = str[num - 1];			num--;		}		str[num] = temp;	}}int main(){	char a[] = "abcdefj";	RightHand(a, 2);	printf("%s/n", a);	system("pause");	return 0;}

方法三:進行開辟雙倍字符串空間
#define _CRT_SECURE_NO_WARNINGS 1  #include<stdio.h>  #include<stdlib.h>  #include<string.h>  #include<assert.h>  //方法三:進行開辟雙倍字符串空間void RightHand(char *str, int len){	assert(str);	assert(len > 0);	char *Buff = NULL;	char *start_Buff = Buff;	int num = strlen(str);	Buff = (char*)malloc(2 * num + 1);	strcpy(Buff, str);	strcat(Buff, str);	strncpy(str, Buff + num-len, num);}int main(){	char a[] = "abcdefj";	RightHand(a, 2);	printf("%s/n", a);	system("pause");	return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 博客| 渝中区| 安陆市| 比如县| 大庆市| 汕头市| 芦溪县| 舟山市| 乌鲁木齐县| 巨鹿县| 梓潼县| 麦盖提县| 金湖县| 吉安县| 自贡市| 郸城县| 竹溪县| 德阳市| 洮南市| 延吉市| 河津市| 昌宁县| 灌云县| 文昌市| 无锡市| 长宁县| 泾源县| 武义县| 蓬安县| 吉林市| 汉寿县| 西青区| 鹿泉市| 永德县| 白沙| 安塞县| 南城县| 平泉县| 随州市| 浮山县| 黄梅县|