【c】找到与给定字符相同的字符

给定程序中,函数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>

这一行引入了标准输入/输出库,其中包含了printfscanf等函数。

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函数来基于用户输入的字符修改字符串。最后,打印出修改后的字符串。

相关推荐
Dlrb12116 小时前
C语言-指针数组与数组指针
c语言·数据结构·算法·指针·数组指针·指针数组·二级指针
坚果派·白晓明6 小时前
【鸿蒙PC三方库移植适配框架解读系列】第一篇:Lycium C/C++ 三方库适配 — 概述与环境配置
c语言·开发语言·c++·harmonyos·开源鸿蒙·三方库·c/c++三方库
谙弆悕博士10 小时前
快速学C语言——第19章:C语言常用开发库
c语言·开发语言·算法·业界资讯·常用函数
wangjialelele12 小时前
Linux SystemV 消息队列 + 责任链模式:实现客户端消息处理流水线
linux·服务器·c语言·网络·c++·责任链模式
jimy113 小时前
C语言中的inline function specifier(函数说明符、关键字)
c语言·开发语言
SHARK_pssm14 小时前
【数据结构——复杂度】
c语言·数据结构·经验分享·笔记
Hello:CodeWorld14 小时前
μC/OS vs FreeRTOS:嵌入式实时操作系统深度对比
c语言·开发语言·单片机
努力努力再努力wz15 小时前
【Qt入门系列】深入理解信号与槽:从事件响应到自定义信号机制
c语言·开发语言·数据结构·数据库·c++·qt·mysql
Sakuyu4346815 小时前
C语言基础--基本数据类型
c语言·开发语言
萧戈16 小时前
C/C++ 运行时库概念详解
c语言·c++