给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。
例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
c
#include<stdio.h>
void fun(char *s, char c)
{
int i, j, n;
for(i=0; s[i]!='\0' ; i++)
if(s[i]==c)
{
n=0; // Corrected: Set n to 0
while(s[i+1+n]!='\0') n++;
for(j=i+n; j>=i; j--) s[j+1]=s[j]; // Corrected: Change j+1 to j
s[i+1]=c; // Corrected: Insert the character c
i=i+1;
}
}
int main()
{
char s[80]="baacda", c;
printf("\nThe string: %s\n",s);
printf("\nInput a character: ");
scanf("%c",&c);
fun(s,c);
printf("\nThe result is: %s\n",s);
return 0;
}
这段代码是一个简单的C程序,主要包含一个函数fun
,以及在main
函数中调用该函数的演示。
c
#include<stdio.h>
这一行引入了标准输入/输出库,其中包含了printf
和scanf
等函数。
c
void fun(char *s, char c)
{
int i, j, n;
在这里声明了一个名为fun
的函数,它接受两个参数:一个字符数组(s
)和一个字符(c
)。
c
for(i=0; s[i]!='\0' ; i++)
这个循环遍历字符串s
中的字符,直到遇到空字符(\0
)为止。
c
if(s[i]==c)
{
n=0; // 将n设为0
while(s[i+1+n]!='\0') n++;
如果当前位置的字符等于c
,则计算从当前位置开始到字符串末尾(\0
)的子串长度。
c
for(j=i+n; j>=i; j--) s[j+1]=s[j]; // 移动字符以腾出空间
这个循环将字符串中的字符向右移动,以为新字符腾出空间。它从子串的末尾开始,向当前位置移动。
c
s[i+1]=c; // 插入字符c
i=i+1;
}
}
int main()
{
char s[80]="baacda", c;
printf("\nThe string: %s\n",s);
printf("\nInput a character: ");
scanf("%c",&c);
fun(s,c);
printf("\nThe result is: %s\n",s);
return 0;
}
在main
函数中,首先定义了一个初始字符串s
,然后程序提示用户输入一个字符。接着,调用了fun
函数来基于用户输入的字符修改字符串。最后,打印出修改后的字符串。