请编写一个函数void fun(cbara [], charb [], int n),其功能是:删除一个字符申中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 例如,输入一个字符串world,然后输入3,则调用该函数后的结果为word。 注意:部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: # include <stdio.h> # include <conio.h> # define LEN 20 void fun (char a[], char b [], int n) { } main () { char str1 [LEN], str2 [LEN]; int n ; clrscr (); printf ("Enter the string : \n") ; gets (str1) ; printf ("Enter the position of the string deleted: "); scanf ("%d", &n) ; fun (str1, str2, n) ; printf ("The new string is : %s \n", str2) ; }
参考答案:
解析:void fun {char a[], char b[],int n) { int i,k=0; for(i=0;a[i]!=‘\0’;i++) if (i!=n) /*将不是指定下标的字符存入数组b中*/ b[k++]=a[i]; b[k]=‘\0’; /*在字符串最后加上结束标记*/ } 本题要求删除字符串中指定下标的字符,即相当于把不是指定下标的字符留下。所以要用if(i!=n),注意不能写成“=”运算。