講解對象:移動字符串 作者:融水公子 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開始 直到字符串結束 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; }
|