| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1272 人关注过本帖
标题:这两个程序有什么区别吗?
只看楼主 加入收藏
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分: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编辑过]

搜索更多相关主题的帖子: char str puts 输入 return 
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.018198 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved