| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
大量收QQ微信精准粉/交友粉,非诚勿扰千里之行 始于足下
共有 327 人关注过本帖
标题:这两个程序有什么区别吗?
只看楼主 加入收藏
kuaisha
Rank: 2
等 级:论坛游民
帖 子:114
专家分:30
注 册:2016-8-3
结帖率:100%
  问题点数:0  回复次数:1   
这两个程序有什么区别吗?
程序代码:

//修改后
#include <stdio.h>

char *mystrchr(char *, char );

int main(void)
{
    char str[81];
     char ch;
     char *p;
 do
 {
  puts("输入字符串的范围:");
  gets(str);
  puts("输入匹配字符 :");
  ch = getchar();
  getchar();
  p = mystrchr(str, ch);
  if ( p )
  {
   puts("找到!");
   puts(p);
  }
  else puts("找不到!");

  puts("输入任何字符除了q继续.");
  gets(str);
 }
 while(*str != 'q');

 puts("退出.");
    return 0;
}

char *mystrchr(char *p, char ch)
{
//
if(*p == '\0') return NULL;
 while(1)
 {
  if(*p == ch)
  {
   return p;//

  }
  else
  {
   if(*++p == '\0') return NULL;
   //
  }
 }
}

程序代码:

//原文
#include <stdio.h>

char *mystrchr(char *, char );

int main(void)
{
    char str[81];
     char ch;
     char *p;
 do
 {
  puts("输入字符串的范围:");
  gets(str);
  puts("输入匹配字符 :");
  ch = getchar();
  getchar();//还有一个问题:为什么删除这一行后没办法输入q了?
  p = mystrchr(str, ch);
  if ( p )
  {
   puts("找到!");
   puts(p);
  }
  else puts("找不到!");

  puts("输入任何字符除了q继续.");
  gets(str);
 }
 while(*str != 'q');

 puts("退出.");
    return 0;
}

char *mystrchr(char *p, char ch)
{
 char *p_save = p;//删除这一行
if(*p == '\0') return NULL;
 while(1)
 {
  if(*p == ch)
  {
   return p_save;//修改p_save为p

  }
  else
  {
   if(*++p == '\0') return NULL;
   p_save = p;//删除这一行
  }
 }
}

删除和修改了这三行也没有什么错误,那么这三行有什么用吗,总感觉多此一举。

[此贴子已经被作者于2018-1-13 21:54编辑过]

2018-01-13 21:06
我爱编程11
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2017-12-17
  得分:0 
“getchar();//还有一个问题:为什么删除这一行后没办法输入q了?”
删除后,输入的q就是回车
2018-01-26 20:11







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

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