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进行递归函数构造。

【源码实现】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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

发表回复

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