- 论坛徽章:
- 4
|
本帖最后由 linux_c_py_php 于 2012-09-24 11:14 编辑
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX_LENGTH (20 + 2)
- int func(char a[], char b[], int n); // function declaration
- int main(int argc, char* const argv[]) {
- char a[MAX_LENGTH];
- char b[MAX_LENGTH];
- int n;
- printf("输入字符串(<20):");
- fflush(stdout);
- if (! fgets(a, MAX_LENGTH, stdin))
- return 1;
- int len = strlen(a);
- if (a[len - 1] != '\n') {//exceed 20 bytes long
- fprintf(stderr, "input>20\n");
- return 2;
- }
- a[len - 1] = '\0';
- printf("你输入的是:\n%s\n", a);
- printf("你想删除第几个?\n");
- if (1 != scanf("%d", &n))
- return 3;
- int ret;
- if (! (ret = func(a, b, n)))
- printf("%s\n", b);
- else
- fprintf(stderr, "func=%d\n", ret);
- return 0;
- }
- int func(char a[], char b[], int n) {
- if (!a || !b || n >= 20 || n < 0)
- return -1;
- int len = strlen(a);
- int i, j;
- if (n >= len)
- return -1;
- for (i = 0, j = 0; i < len; ++ i) {
- if (i != n)
- b[j++] = a[i];
- }
- b[j] = '\0';
- return 0;
- }
复制代码 和这个代码比对一下, 看看为什么这些地方要这么写. |
|