以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 帮我看看这程序 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=32075) |
-- 作者:crwfnh05 -- 发布时间:5/10/2006 6:14:00 PM -- 帮我看看这程序 #include <stdio.h> void main() {char del(char a[],char ch); /* 定义一个输入一个当字符串中的字符和定义字符相同 时删除字符串中的函数 */ char a[30]; char ch; gets(a); get(&ch); del(a,ch); /*调用del 删除函数*/ printf("%s\n",a); } char del(char s[],char b) /*del被调函数*/ { int i=0; while(s[i]!='\0') { if (s[i]=b) /*就是这里出错*/ s[i]='\0'; i++; } } 我不知道是怎么的,我以前一个程序也是这样类型写的都可以运行,现在的这个总是在“b”那出错,帮我看看; |
-- 作者:guichen -- 发布时间:5/11/2006 9:09:00 AM -- "s[i]=b "还是"s[i]==b" ??? |
-- 作者:firstway -- 发布时间:5/11/2006 12:32:00 PM -- while(s[i]!='\0') { if (s[i]==b) /*这里已经改成==*/ s[i]='\0'; i++; } 按照这个函数,不但删除字符b,,s[i]='\0'还屏蔽b后面的所有字符了(如果后面有的话) |
-- 作者:crwfnh05 -- 发布时间:5/11/2006 12:47:00 PM -- 就是啊,我再改改。 |
-- 作者:zhaoxue86 -- 发布时间:5/26/2006 11:40:00 PM -- 如果重复出现同一字符呢? 可不可以用双重循环呢? for的你可以想一下!! |
-- 作者:elfstone -- 发布时间:5/27/2006 12:37:00 AM -- #include "stdio.h" int main() { char c,ch; scanf("%c",&c); getchar(); char s[30]; //在不定量输入的情况下,可以考虑动态分配数组容量 int i=0; scanf("%c",&ch); while(ch != '\n') { if(c != ch) s[i++] = ch; scanf("%c",&ch); } s[i] = '\0'; printf("%s",s); getchar(); return 0; }
|
-- 作者:crwfnh05 -- 发布时间:5/27/2006 7:02:00 PM -- 上面的那两个getchar()是起什么作用的啊 我觉得不要也可以啊 。 |
-- 作者:elfstone -- 发布时间:5/27/2006 11:04:00 PM -- 第一个用来吸收换行符,第二个用来暂留屏幕。。。 |
-- 作者:crwfnh05 -- 发布时间:5/28/2006 10:32:00 PM -- 哦,可以啊以后就可以不用ALT+F5来看了。 |
-- 作者:crwfnh05 -- 发布时间:5/28/2006 10:35:00 PM -- 但是那个return ()起什么起用呢? |
-- 作者:adison83 -- 发布时间:5/31/2006 1:50:00 PM -- PRINTF 遇到\0就停止输出了 所以不管你后头有什么他都不显示啦~~~ |
-- 作者:elfstone -- 发布时间:6/1/2006 4:45:00 PM --
是return 0 建议找本C/C++的教材仔细阅读一下。。。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |