| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 679 人关注过本帖
标题:字符问题求助!
只看楼主 加入收藏
guodong0088
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-1-11
结帖率:100%
收藏
 问题点数:0 回复次数:7 
字符问题求助!
题目:当用户输入一个单词时,可以用函数统计这个单词在程序中读入的一段文本中出现的总次数
下面是我编写的。。。但是运行结果。。。老是显示总次数等于0。。。哪个高手帮帮忙呀。。。
#include<stdio.h>
#include<string.h>
void main()
{
    char c,str1[23];
    int a,b=0;
    int k=strlen(str1);
    printf("请输入一个单词:\n");
    gets(str1);
    printf("请输入一段文本:\n");
    while((c=getchar())!='\n')
    {
        if(c==str1[0])
        {
            for(a=0;(a+c)==str1[a];a++);
            if(a==k)
                b++;
        }
    }
    printf("用户输入的字符串在文本中出现的次数为:%d\n",b);
 }
搜索更多相关主题的帖子: 统计 用户 
2011-01-12 14:50
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
收藏
得分:0 
你是想判断输入的字符在词中出现的次数还是?
还有  if(c==str1[0])
        {
            for(a=0;(a+c)==str1[a];a++);
            if(a==k)
                b++;
        }
逻辑比较乱.两个IF不知是用来做什么的。

清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2011-01-12 15:11
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
#include<stdio.h>
#include<string.h>
void main()
{
    char c,str1[20],str2[100];
    int a,b=0,i=0,j,l=1,m=0;
    int k=strlen(str1);
    printf("请输入一个单词:\n");
    gets(str1);
    printf("请输入一段文本:\n");
    do
      {
        str2[i]=getchar();
        i++;
      }while(str[i-1]!='\n');
     for(j=0;j<100;j++)
      {
        if(str2[j]==str1[0])
        {
            for(a=0;a<k;a++)
            {
             if(str2[j+a]==str1[l++])
                m=1;
              else
                { m=0; break;}
            }
         }
           if(m==1) { b++; l=1; m=0; }
       }
    printf("用户输入的字符串在文本中出现的次数为:%d\n",b);
 }

[ 本帖最后由 qq1023569223 于 2011-1-12 15:19 编辑 ]

   唯实惟新 至诚致志
2011-01-12 15:12
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
收藏
得分:0 
楼上的高手又出现了

我是初学者
2011-01-12 16:01
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<string.h>
void main()
{
    char c,str1[23];
    int a,b=0;
    printf("请输入一个单词:\n");
    gets(str1);
    int k=strlen(str1);
    int i=0;
    printf("请输入一段文本:\n");
    while((c=getchar())!='\n')
    {
        if(c==str1[i])
            i++;
        else
            i=0;

        if(i==k)
        {
            b++;
            i=0;
        }
    }
    printf("用户输入的字符串在文本中出现的次数为:%d\n",b);
}
帮你改了下

If You Want Something, Go Get It, Period.
2011-01-12 16:52
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
回复 4楼 xzy199999
小弟惭愧啊

   唯实惟新 至诚致志
2011-01-12 17:55
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
以下是引用m21wo在2011-1-12 16:52:05的发言:

#include
#include
void main()
{
    char c,str1[23];
    int a,b=0;
    printf("请输入一个单词:\n");
    gets(str1);
    int k=strlen(str1);
    int i=0;
    printf("请输入一段文本:\n");
    while((c=getchar())!='\n')
    {
        if(c==str1)
            i++;
        else
            i=0;
 
        if(i==k)
        {
            b++;
            i=0;
        }
    }
    printf("用户输入的字符串在文本中出现的次数为:%d\n",b);
}帮你改了下
大致上形式差不多,如果思维从[0]开始肯定会两次循环,一次循环OK

小代码,大智慧
2011-01-12 18:39
xdzsm
Rank: 2
等 级:论坛游民
帖 子:137
专家分:99
注 册:2010-10-26
收藏
得分:0 
支持!
2011-01-12 19:11
快速回复:字符问题求助!
数据加载中...
 
   



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

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