| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1327 人关注过本帖
标题:int,void
只看楼主 加入收藏
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
结帖率:96.88%
收藏
已结贴  问题点数:20 回复次数:5 
int,void
自己写的出了点问题,一开始fun(char *str1,char *str2)前面是 void ,调试出错.然后我把void 改为 int 也就是现在的代码,调试之后dos窗口没有输出.
  最好大神能把下面代码改好了 不尽感激!
//统计两个字符串中字符总数
#include<stdio.h>
#include<string.h>
int fun(char *str1,char *str2);
int main()
{
    int n;
    char str1[]="sfaf",str2[]="huilkk";
     n=fun(str1,str2);
      printf("%d",n);
 }
 
int fun(char *str1,char *str2)
{
    int i,m=0;
     for(i=0;str1[i]!='\0';m++);
      for(i=0;str2[i]!='\0';m++);
       return m;
 }

[此贴子已经被作者于2016-9-23 16:42编辑过]

搜索更多相关主题的帖子: include 字符串 统计 最好 
2016-09-23 16:36
demon90s
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:44
专家分:121
注 册:2016-1-3
收藏
得分:3 
学习一下函数的定义
2016-09-23 16:38
chenchen224
Rank: 4
等 级:业余侠客
威 望:1
帖 子:61
专家分:237
注 册:2016-8-11
收藏
得分:2 
int fun(char *str1,char *str2)
{
    int i,m=0;
     for(i=0;str1[i]!='\0';m++);
      for(i=0;str2[i]!='\0';m++);
       return m;
 }
这个有问题啊。你不是要输出两个字符串的长度,怎么只定义了一个m值去接受
难道这两个字符串长度一样??

我想做的,只是静静的把C学好,从此代码是爱人......
2016-09-23 16:52
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:10 
  for(i=0;str1[i]!='\0';m++);//这是个要不一次不执行,要么就是无限循环。当str[i]!='\0'在这个程序中等价于str[0]!='\0';

呵呵,作为一个循环,控制循环的变量i没有发生过改变,这个循环就是个死货。
程序代码:
#include<stdio.h>
#include<string.h>
int fun(char *str1,char *str2);
int main()
{
    int n;
    char str1[]="sfaf",str2[]="huilkk";
     n=fun(str1,str2);
      printf("%d",n);

 }


int fun(char *str1,char *str2)
{
    int i,m=0;
     for(i=0;str1[i]!='\0';i++)m++;
      for(i=0;str2[i]!='\0';i++)m++;
       return m;

 } 
另外,m++ 和++m 的区别楼主应该知道吧。。。额,,有一件微不足道的细节就是,++m 的执行效率比m++高一点,快一点。一点点,可以忽略不计,也可以闲着没事较个真。





φ(゜▽゜*)♪
2016-09-23 17:09
微生固
Rank: 2
来 自:湖北-武汉
等 级:论坛游民
帖 子:13
专家分:35
注 册:2016-9-22
收藏
得分:5 
拿走不谢
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int fun(char *str1,char *str2);
int main()
{
    int n;
    char str1[10]="sfaf",str2[10]="huilkk";
     n=fun(str1,str2);
      printf("%d",n);
      
    system("pause");
    return 0;
 }
 
int fun(char *str1,char *str2)
{
    int i,m=0;
    for(i=0;str1[i]!='\0';i++)
        m++;
    for(i=0;str2[i]!='\0';i++)
        m++;
    return m;
 }

2016-09-23 17:18
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
收藏
得分:0 
你循环i都没有递增,有可能会到'\0'吗??
2016-10-13 18:32
快速回复:int,void
数据加载中...
 
   



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

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