| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 670 人关注过本帖
标题:输入字符串,统计其中某个字符的个数;语法没错,怎么编译不了。怎么回事。
只看楼主 加入收藏
完梦之人
Rank: 1
等 级:新手上路
帖 子:14
专家分:2
注 册:2014-11-28
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:10 
输入字符串,统计其中某个字符的个数;语法没错,怎么编译不了。怎么回事。
#include<stdio.h>
#include <string.h>
int tj(char *zf,char *z)
{
    int i,j=0,y;
    y=strlen(*zf);
    for(i=0;i<y;i++)
        if(*z==*(zf+i))
            j++;
        return j;
}
void main()
{
    char x,zfc[100];
    printf("字符串");
    gets(zfc);
    printf("字符");
    x=getchar();
    printf("统计:%d",tj(zfc,&x));
}
搜索更多相关主题的帖子: include 字符串 统计 
2014-12-04 12:41
xufan
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:232
专家分:804
注 册:2008-10-20
收藏
得分:8 
主函数:tj(zfc,&x), 其中zfc是数组的地址!
再看函数的定义部分, y=strlen(*zf);那么*zf是数组的第一个元素, 在用strlen肯定出错了!

~~~~~~我的明天我知道~~~。
2014-12-04 13:38
编译中。。
Rank: 7Rank: 7Rank: 7
来 自:中国
等 级:黑侠
帖 子:198
专家分:511
注 册:2011-7-29
收藏
得分:8 
程序代码:
#include<stdio.h>
#include <string.h>
int tj(char *zf,char *z)
{
    int i,j=0,y;
    y=strlen(zf);//这里去掉* 理由看楼上
    for(i=0;i<y;i++)
        if(*z==*(zf+i))
            j++;
        return j;
}
int main()
{
    char x,zfc[100];
    printf("字符串");
    gets(zfc);
    printf("字符");
    x=getchar();
    printf("统计:%d",tj(zfc,&x));
}

 当我感到些许疲倦时   便想躺在阳光下,小路旁 . 可这些往往都是奢望..
2014-12-04 15:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
既然用到for()循环扫描数组,还用strlen()求字符串长度干嘛!

授人以渔,不授人以鱼。
2014-12-04 15:44
完梦之人
Rank: 1
等 级:新手上路
帖 子:14
专家分:2
注 册:2014-11-28
收藏
得分:0 
回复 4 楼 TonyDeng
我想的是用函数计算出输入字符串的长度,
2014-12-04 17:48
完梦之人
Rank: 1
等 级:新手上路
帖 子:14
专家分:2
注 册:2014-11-28
收藏
得分:0 
回复 楼主 完梦之人
想想也是,指针还是稀里糊涂的。
2014-12-04 17:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
既然需要完整扫描一次字符数组,就不用先算它的长度,因为C的字符串用结束字符作标志。strlen()函数也是扫描一次的,你先调用strlen(),就扫描过一次,后面又再扫描一次,属于重复劳动。

授人以渔,不授人以鱼。
2014-12-04 17:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
关指针什么事,你是搞不明白字符串的概念。

授人以渔,不授人以鱼。
2014-12-04 17:57
完梦之人
Rank: 1
等 级:新手上路
帖 子:14
专家分:2
注 册:2014-11-28
收藏
得分:0 
回复 8 楼 TonyDeng
受教了,看书不够细心啊。
2014-12-04 18:24
完梦之人
Rank: 1
等 级:新手上路
帖 子:14
专家分:2
注 册:2014-11-28
收藏
得分:0 
回复 6 楼 完梦之人
是这样不?
#include<stdio.h>
int tj(char *zf,char *z)
{
    int i,j=0,y;
    for(i=0;*zf!='\0';i++,zf++)
        if(*z==*zf)
            j++;
        return j;
}
int main()
{
    char x,zfc[100];
    printf("字符串");
    gets(zfc);
    printf("字符");
    x=getchar();
    printf("统计:%d",tj(zfc,&x));
}
2014-12-04 18:33
快速回复:输入字符串,统计其中某个字符的个数;语法没错,怎么编译不了。怎么回 ...
数据加载中...
 
   



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

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