该函数实现的功能是:删除字符串中间的*,该字符串只有字母和*
其中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++;
}
}
给定函数功能编写函数实现该功能
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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训练自己的数据集