标题:练习题2
只看楼主
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
结帖率:94.64%
已结贴  问题点数:15 回复次数:2 
练习题2
写一个函数,删除给定范围的字符。
如:char str[] = "123456789"; str_delete(str, 3, 6); printf("%s\n", str);
输出:123789

补充:
对于范围不合法的,不对字符串做处理。

悬赏分:15

参考答案:
程序代码:
#include <stdio.h>
#include <string.h>

char * del(char * str, unsigned begin, unsigned end) {
    unsigned i = end, j = strlen(str), range = end - begin;
    if(begin > j || end > j || end < begin)
        return str;
    while(i <= j)
        str[i - range] = str[i++];
    return str;
}

int main(void) {
    char str[] = "123456789";
    del(str, 3, 6);
    printf("%s\n", str);
    return 0;
}
/* Output:
123789

Process returned 0 (0x0)   execution time : 0.266 s
Press any key to continue.
*/



[ 本帖最后由 lz1091914999 于 2011-6-25 19:29 编辑 ]
搜索更多相关主题的帖子: 参考答案 练习题 悬赏分 
2011-06-25 17:47
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
得分:15 
程序代码:
void f(char *a,int i,int j)
{int m;
for(m=i;m<j;m++)
*(a+m)=*(a+j-i+m);
*(a+strlen(a)-j+i)=0;
puts(a);
}
int main()
{char a[]="123456789";
int i,j;
scanf("%d%d",&i,&j);
if(i>strlen(a)||j>strlen(a)||i<0||j<0)
return 0;
if(i>j)
{i=i^j;
j=i^j;
i=i^j;}
f(a,i,j);
getch();
}
接个分!

[ 本帖最后由 hjywyj 于 2011-6-25 19:09 编辑 ]
2011-06-25 19:06
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
得分:0 
围观。。。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-25 20:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-343971-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064598 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved