分享

移动字符串

 融水公子 2019-07-11

讲解对象:移动字符串

作者:融水公子 rsgz


要求:

原来的字符串 ABCDEFGHIJK  m=3;移动后字符串的内容是DEFGHIJKABC

编写实现这样的功能的函数

#include<stdio.h>

#include<stdlib.h>

#include<string>

#define N 81

void fun(char *w, int m) {

char t[N];

//同时处理两个数组  需要两个循环变量

int i, j;

for (i = 0; i<m; i++) {

t[i] = w[i];//前半截字符存入 t数组

}

j = 0;

for (i = m; w[i] != '\0'; i++){//i=m等价于m+1开始  直到字符串结束

w[j] = w[i];//后半截字符存入 w数组的开始

j++;

}

for (i = 0; i<m; i++) {

w[j] = t[i];//前半截的字符接入后半截的后面

j++;

}

//字符移位后 由于字符串的长度并没有发生改变  不需要专门处理字符串的末尾\0

}

int main() {

char a[N] = "ABCDEFGHIJK";//a[N]存储ABC

int m;

FILE *out;//文件指针out

printf("这个原先的字符串是:\n");

puts(a);

printf("输入位置:\n");

scanf_s("%d", &m);

fun(a, m);

printf("移动之后的字符串是:\n");

puts(a); printf("\n");

out = fopen("d:\\out.txt", "w");

fun(a, strlen(a) - m);

fprintf(out, "%s\n", a);

fun(a, 3);

fprintf(out, "%s\n", a);

fclose(out);

system("pause");

return 0;

}

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多