请编写一个函数void fun(cbara [], charb [], int n),其功能是:删除一个字符申中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 例如,输入一个字符串world,然后输入3

admin2010-11-26  35

问题 请编写一个函数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),注意不能写成“=”运算。
转载请注明原文地址:https://jikaoti.com/ti/qnkiFFFM
0

最新回复(0)