講解對象:移動字符串
作者:融水公子 rsgz
要求:
原來的字符串 ABCDEFGHIJK m=3;移動后字符串的內(nèi)容是DEFGHIJKABC
編寫實現(xiàn)這樣的功能的函數(shù)
#include<stdio.h>
#include<stdlib.h>
#include<string>
#define N 81
void fun(char *w, int m) {
char t[N];
//同時處理兩個數(shù)組 需要兩個循環(huán)變量
int i, j;
for (i = 0; i<m; i++) {
t[i] = w[i];//前半截字符存入 t數(shù)組
}
j = 0;
for (i = m; w[i] != '\0'; i++){//i=m等價于m+1開始 直到字符串結(jié)束
w[j] = w[i];//后半截字符存入 w數(shù)組的開始
j++;
}
for (i = 0; i<m; i++) {
w[j] = t[i];//前半截的字符接入后半截的后面
j++;
}
//字符移位后 由于字符串的長度并沒有發(fā)生改變 不需要專門處理字符串的末尾\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;
}