第10课 编程题真题
编写一个函数fun,要求输入的字符串放在a数组中,将不是指定下标的字符存入数组b中,n中存放指定的下标。
例如,输入一个字符串: World,然后输入3,则调用该函数后的结果为: Word。 输入一个字符串:wonderful 然后输入4 则结果为wondrful
注意: 部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【微答案】
void fun(char p1[], char p2[])
{
int i,j;
for(i=0;p1[i]!='\0';i++);
for(j=0;p2[j]!='\0';j++)
p1[i++]=p2[j];
p1[i]='\0';
}
【微分析】
本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。最后在第1个字符串的结尾加上字符串结束标识′\0′。
我:
#include <stdio.h>
#include <string.h>
#define LEN 20
void fun (char a[], char b[], int n)
{int i,j;
for(i=0,j=0;i<strlen(a);i++)
if(i!=n)
b[j++]=a[i];
b[j]=0;
}
main( )
{ char str1[LEN], str2[LEN] ;
int n ;
void NONO ( );
printf("Enter the string:\n") ;
gets(str1) ;
printf("Enter the index of the char deleted:") ;
scanf("%d", &n) ;
fun(str1, str2, n) ;
printf("The new string is: %s\n", str2) ;
NONO() ;
}