| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 914 人关注过本帖
标题:各位朋友,发现一下错误吧
只看楼主 加入收藏
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:19 
各位朋友,发现一下错误吧
编写一个程序,允许输入一个用逗号分隔的单词表,然后提取出单词,删除单词前后的所有空格,每个单词用一行输出。例如,如果输入的是
   John , Jack , Jill

那么输出的是:

-------------------
John
Jack
Jill
-------------------
下面是编写的程序:
#include<stdio.h>
#include<string.h>
int main(void)
{
    char text[80];
    printf("enter a text: ");
    fgets(text,sizeof(text),stdin);
    int i=0;
    for(i=0;i<=80;i++)
    {
        if(text[i]!=',')
            continue;
        text[i]=' ';
    }
    i=0;
    int j=0,k=0;
    char words[20][15];
    char word[15];
    while(1)
    {
        while(text[i]==' ')
            i++;
        if(text[i]=='\0')
            break;
        j=0;
        while(text[i]!=' ')
            word[j++]=text[i++];
            word[j]='\0';
            strcpy(words[k++],word);
    }
    for(i=0;i<=k;i++)
        printf("%s\n",words[i]);
    return 0;
}
搜索更多相关主题的帖子: continue include 单词表 朋友 
2014-02-26 08:37
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
收藏
得分:0 
呼叫版主和各位朋友们,我真的感觉这个程序是无解的对,但是调试的时候却出先了很多个烫
2014-02-26 09:25
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:3 
会不会是没有初始化的原因?

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2014-02-26 09:49
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
收藏
得分:0 
回复 3楼 so_love
都有初始化啊
2014-02-26 10:05
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
收藏
得分:0 
回复 3楼 so_love
把所有的定义都放在主函数的最前面就不会没有初始化了,可能是后面的二维数组出了点问题,但我实在发现不了啊      


#include<stdio.h>
#include<string.h>
int main(void)
{
    char text[80];  int j=0,k=0;
    char words[20][15]; int i=0;
    char word[15];
    printf("enter a text: ");
    fgets(text,sizeof(text),stdin);
    for(i=0;i<=80;i++)
    {
        if(text[i]!=',')
            continue;
        text[i]=' ';
    }
    i=0;
    while(1)
    {
        while(text[i]==' ')
            i++;
        if(text[i]=='\0')
            break;
        j=0;
        while(text[i]!=' ')
            word[j++]=text[i++];
            word[j]='\0';
            strcpy(words[k++],word);
    }
    for(i=0;i<=k;i++)
        printf("%s\n",words[i]);
    return 0;
}
2014-02-26 10:08
xp0213
Rank: 7Rank: 7Rank: 7
来 自:湖北武汉
等 级:黑侠
威 望:1
帖 子:210
专家分:522
注 册:2011-10-26
收藏
得分:2 
2014-02-26 11:02
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
收藏
得分:0 
回复 6楼 xp0213
2014-02-26 12:50
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:15 
程序代码:
#include <stdio.h>
#include <string.h>
int main(void)
{
    char text[80]={'\0'};
    char words[20][15];
    printf("enter a text: ");
    fgets(text,sizeof(text),stdin);
    int len=strlen(text);
    int i,j=0,k=0;
    for(i=0;i<len;i++)
    {
        if(text[i]==10) break;
        if(text[i]!=',')
        {
            words[j][k]=text[i];
            k++;
           }
        else
        {
            words[j][k]='\0';
            k=0;
            j++;
        }
    }
    words[j][k]='\0';
    for(i=0;i<=j;i++) printf("%s\n",&words[i]);
    return 0;
}

DO IT YOURSELF !
2014-02-26 17:02
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
收藏
得分:0 
回复 8楼 wp231957
话不多说,跪谢版主
2014-02-26 18:29
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
  我的代码没有处理前导空格和后导空格  你自己处理一下吧  相信不难吧

DO IT YOURSELF !
2014-02-26 18:49
快速回复:各位朋友,发现一下错误吧
数据加载中...
 
   



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

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