bianchengxz 2017-08-18 01:58 采纳率: 33.3%
浏览 788

给定函数功能编写函数实现该功能

该函数实现的功能是:删除字符串中间的*,该字符串只有字母和*
其中h指向字符串第一个字母,p指向最后一个字母,a是给定的字符串
例如字符串为****A**DE***,h指向A的位置,p指向E的位置,结果为
****ADE***
我自己写出来一个但是不知道哪里有问题求解答
void fun(char a, char *h,char *p)
{
char *q;
q=a;
while(*q=='
')
q++;
while(h!=p)
{
if(*h!='*')
{*q=*h;q++;h++;}
else
h++;
}
}

  • 写回答

3条回答 默认 最新

  • Tsui丶 2017-08-18 02:04
    关注
     #include <stdio.h>
    #include <string.h>
    #include <malloc.h>
    
    // 将strRes中的t替换为s,替换成功返回1,否则返回0。
    int StrReplace(char strRes[],char from[], char to[]) {
        int i,flag = 0;
        char *p,*q,*ts;
        for(i = 0; strRes[i]; ++i) {
            if(strRes[i] == from[0]) {
                p = strRes + i;
                q = from;
                while(*q && (*p++ == *q++));
                if(*q == '\0') {
                    ts = (char *)malloc(strlen(strRes) + 1);
                    strcpy(ts,p);
                    strRes[i] = '\0';
                    strcat(strRes,to);
                    strcat(strRes,ts);
                    free(ts);
                    flag = 1;
                }
            }
        }
        return flag;
    }
    
    int main() {
        char str[80] = "098123asd098opu";
        printf("替换前:%s\n",str);
        if(StrReplace(str,"098","33210")) printf("替换后:%s\n",str);
        else printf("没有任何替换。\n");
        return 0;
    }
    

    给个例子你参考

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集