| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1370 人关注过本帖
标题:请指教下列函数的错误之处
只看楼主 加入收藏
forrest0227
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-10
收藏
得分:0 
回复 10# 的帖子
答案显然不对啊
2008-01-29 22:37
forrest0227
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-10
收藏
得分:0 
回复 11# 的帖子
我还是附上错误的程序吧
#include<stdio.h>
char removeString(char String[], int Start, int count)
{
   int i;
   for(i=Start; i<Start+count; i++)
  
String[i]="";
return* String;
 }

int main(void)
{
char removeString(char String[], int Start, int count);
printf("%s\n", removeString("the wrong son", 4, 6) );
}
2008-01-29 22:40
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
'\0'

樱花大战,  有爱.
2008-01-29 22:41
forrest0227
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2007-12-10
收藏
得分:0 
回复 13# 的帖子
我的目的在于将"the wrong son" 中的"wrong "去掉, 我用空字符来取代, 你却要用'\0', 这显然是错的嘛, 你可以自己把程序在机上验证下。
2008-01-29 22:49
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
删除指定字符是你那样做的么?

樱花大战,  有爱.
2008-01-29 23:14
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
不是很完整,了解一下够用了:
char* RemoveString(char* str,int start,int last)
{
    if(!str||strlen(str)==0) return NULL;
    else
    {
        char* p=str+last+1;
        int i=start;
        for(;*p!='\0';p++)
               str[i++]=*p;
        str[i]='\0';
        return str;
    }
}

樱花大战,  有爱.
2008-01-29 23:44
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1686
专家分:4252
注 册:2007-12-27
收藏
得分:0 
经验与教训:请发帖时详细说明程序的目的,这样才不会走弯路。
2008-01-30 10:00
蒋坤
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-1-29
收藏
得分:0 
这个程序本身就有些问题。如果你是想将字符串“the wrong son”中的“wrong ”(后面有一个空格)去掉的话最好不要写这样的函数!分析一下你的思路,你是想将字符串“wrong ”用空格替换掉,但是即使你的代码正确,输出的结果是:

the       son

也就是说,你写的函数并不能漂亮的完成任务!我其实也是刚学C语言,我还不知道返回字符串的函数该怎么写,但是觉得能用指针来完成:

#include "stdio.h"
#include "conio.h"
char *removeString(char *p,int s,int c)
{
char *q,*r;
int i;
q=p;r=p;
for(i=0;i<=15;i++,p++)
 {
  if((i<s)||(i>s+c))
   {
    *q=*p;q++;
   }
 }
return r;
}
void main()
{
char *p="the wrong son";
int start,count;
start=4;count=6;
p=removeString(p,start,count-1);
printf("%s\4;
getch();
}

我没有考究算法,可能在算法上较为复杂。运行结果应该为:

the son
2008-01-30 13:41
快速回复:请指教下列函数的错误之处
数据加载中...
 
   



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

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