请编写一个函数void fun(cbara [] charb [] int n) 其功能
问题详情
请编写一个函数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 ik=0;for(i=0;a[i]!=‘\0’;i++)if (i!=n) /*将不是指定下标的字符存入数组b中*/b[k++]=a[i];b[k]=‘\0’; /*在字符串最后加上结束标记*/}
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),注意不能写成“=”运算。