| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 305 人关注过本帖
标题:练习题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
快速回复:练习题2
数据加载中...
 
   



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

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