Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /www/wwwroot/blog/wp-content/plugins/UEditor-KityFormula-for-wordpress/main.php on line 13
【数据结构】C语言实现字符串移位函数 – Machine World

【背景】

编写一个函数StringTransfer(char *s, int n)。

该函数实现的功能为:

输入一个字符串s,要求将元素左移n位,往左移位溢出的元素需要向字符串尾部填充。

(本题取自2019级广西师范大学计信学院硕士研究生复试笔试试题)

【源码运行环境】

操作系统:Windows 10

编译环境:Dev C++ (基于C99)

【思路】

题干中,函数定义已经给出,需求大体如下给定参数1:字符串s, 2:移位次数n。

要实现的功能可以分解成:

1、先对整个字符串进行一次移位。

2、根据n进行递归函数构造。

【源码实现】

#include <stdio.h>

void StringTransfer(char *s, int n){
	int i = 0;
	char temp = s[i++];
	if(sizeof(temp) == 0){
		return;
	}
	while(s[i] != '\0'){
		s[i-1] = s[i];
		i++;
	}
	s[i-1] = temp;
	if(n > 1){
		StringTransfer(s, n-1);
	}
}
int main()
{
	char a[] = ""; 
	StringTransfer(a, 3);
	printf("%s", a);
	return 0;
}

【总结】

程序设计基础的关键即大事化小,细分切分。将整体需求转换成一个一个小需求。再针对小需求进行实现,则大问题便可以迎刃而解。

【参考文献】

作者 WellLee

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注