| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 353 人关注过本帖
标题:为什么我这个程序函数用循环得不到结果,还要单独再判断执行一次才得到正确 ...
只看楼主 加入收藏
xiaopao1
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2012-10-18
结帖率:100%
收藏
 问题点数:0 回复次数:3 
为什么我这个程序函数用循环得不到结果,还要单独再判断执行一次才得到正确结果啊?
题目要求:
        删除字符串s中的所有等于c的字符 “abcd”删除b ->"acd"
#include <stdio.h>
#include <string.h>
//函数squeeze()作用是去掉字符串中和字符c相同的字符,返回值为去掉后的字符串
void squeeze(char *s, char c)
{
    int num;
    char *p=s;
    num=strlen(s); //字符串的长度决定循环的次数
    for(;num>0;num--)
    {
        while(*s++)
        {
             if(c==*s)  //如果遇到等于该字符的把该位置变为'\0'后结束while循环
            {
                *s='\0';
                break;
             }
        }
               s=strcat(p,s); //连接字符串,即如果有找到字符C则去掉刚才变的那个'\0'
   }   
   /*if (*s==c)
        s=strcpy(s,s+1);*/ //如果去掉注释,能得到正确的结果,不去掉注释结果总是不能去掉第一个和字符C相同的字符   
}

int main()
{
    char str[20];
    char ch;
    printf("please put a string :\n");
    gets(str);
    printf("put a char number what you want to delate:\n");
    ch =getchar();
    squeeze(str,ch);
    puts(str);
}
搜索更多相关主题的帖子: include 字符串 
2012-11-08 17:29
xiaopao1
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2012-10-18
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
   没注释掉的结果
   注释掉后的结果
帮忙顶起!谢谢了
2012-11-08 17:34
xiaopao1
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2012-10-18
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

没注释掉的结果图
2012-11-08 17:35
xiaopao1
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2012-10-18
收藏
得分:0 
上面的的图刚才发错了序号了,第一个图是加了注释的结果图,第二个图是没加注释的结果图

小弟没什么编程经验,这么烂的程序我都不敢往上贴,但实在不懂这究竟是什么原因!希望大神们帮我看看
2012-11-08 17:42
快速回复:为什么我这个程序函数用循环得不到结果,还要单独再判断执行一次才得到 ...
数据加载中...
 
   



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

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