鹿见青山 2023-12-16 12:32 采纳率: 97.9%
浏览 2
已结题

pta上函数题为什么这样写最后的r打印不出来

6-9 删除字符

分数 10

作者 C课程组
单位 浙江大学
本题要求实现一个删除字符串中的指定字符的简单函数。

函数接口定义:
void delchar( char *str, char c );
其中char *str是传入的字符串,c是待删除的字符。函数delchar的功能是将字符串str中出现的所有c字符删除。

裁判测试程序样例:
#include <stdio.h>
#define MAXN 20

void delchar( char str, char c );
void ReadString( char s[] ); /
由裁判实现,略去不表 */

int main()
{
char str[MAXN], c;

scanf("%c\n", &c);
ReadString(str);
delchar(str, c);
printf("%s\n", str);

return 0;

}

/* 你的代码将被嵌在这里 */
输入样例:
a
happy new year

输出样例:
hppy new yer
#include <string.h>


void delchar( char *str, char c )
{
    int count=0;
    int len=strlen(str);
    for(int i=0;i<len;i++)
    {
        if(str[i]==c)
            //实现循环左移
        {
            count++;
            for(int j=i;j<len-1;j++)
            {
                str[j]=str[j+1];
            }
        }
        str[len-1]=' ';
    }
    srtr[len-count]='\0';
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2023-12-16 12:40
    关注
    void delchar( char str, char c )
    {
        int j = 0, i;
        for (i = 0; str[i]; i++)
        {
            if (str[i] != c)
            {
                str[j++] = str[i];
            }
        }
        str[j] = '\0';
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 修改了问题 12月16日
  • 创建了问题 12月16日

悬赏问题

  • ¥15 Qt4代码实现下面的界面
  • ¥15 prism提示我reinstall prism 如何解决
  • ¥15 asp.core 权限控制怎么做,需要控制到每个方法
  • ¥20 while循环中OLED显示中断中的数据不正确
  • ¥15 这个视频里的stm32f4代码是怎么写的
  • ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
  • ¥15 请教SGeMs软件的使用
  • ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?
  • ¥50 深度学习运行代码直接中断
  • ¥20 需要完整的共散射点成像代码