| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 219 人关注过本帖
标题:c语言 单词转换
只看楼主 加入收藏
cfengyy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
c语言 单词转换
题目描述
输入一个整数K,表示有K组测试数据,接下来的K行,每行输入一个字符串,将其中的单词“how”换成“why”如果没有“how”,就输出“not found!"
输入
先输入一个数一个数,表示要测试的组数,然后依依输入要测试的字符串
输出
输出修改后的字符串,若不包含要修改的“how”,则输出“not found!””
样例输入
3
how are you!
i feel good!
how do you do
样例输出
why are you!
not found!
why do you do
以下是我写的代码,但是提交有错误,求高手给小弟解决一下;#include<stdio.h>
#include<string.h>
int main()
{
    long int k,i,j,flag,t;
    char s[1000];
    scanf("%ld",&k);//输入数据表示测试用列
    getchar();
    for(i=0;i<k;i++)
    {
        flag=1;//标记
        gets(s);//接受字符串
        t=strlen(s);
        if(t==3)//如果该字符串长度为3需要判断是否为how
        {
            if(s[0]=='h' && s[1]=='o' && s[2]=='w')
            {
                s[0]='w';
                s[1]='h';
                s[2]='y';
                flag=0;//标记存在how
            }
            if(flag==0)
                printf("%s\n",s);
            else
                printf("not found!\n");
        }
        else
        {
            if(s[0]=='h' && s[1]=='o' && s[2]=='w' && s[3]==' ')//在字符串长度不等于3的情况下,判断第一个单词是否为how
        {
            s[0]='w';
            s[1]='h';
            s[2]='y';
            flag=0;
        }
        for(j=1;j<t-1;j++)//从第二个字符开始判断如果how单词的前后是空格,就将其转换成why直到倒数第二个字符
        {
            if(s[j-1]==' ' && s[j]=='h' && s[j+1]=='o' && s[j+2]=='w' && s[j+3]==' ')
            {
                s[j]='w';
                s[j+1]='h';
                s[j+2]='y';
                flag=0;
            }
        }
        if(s[t-4]==' ' && s[t-3]=='h' && s[t-2]=='o' && s[t-1]=='w')//判断最后四个字符是否为空格和how如果是将其转换成why
        {
            s[t-3]='w';
            s[t-2]='h';
            s[t-1]='y';
            flag=0;
        }
        if(flag==0)
            printf("%s\n",s);
        else
            printf("not found!\n");
        }
    }
    return 0;
}
搜索更多相关主题的帖子: 测试 include 字符串 
2012-11-27 12:06
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:20 
我运行了一下,功能正确,所以就不调了。

我觉得错误原因是与题意不符,题目要求先全部输入,再输出


[fly]存在即是合理[/fly]
2012-11-27 13:06
cfengyy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-15
收藏
得分:0 
回复 2楼 azzbcc
怎么改?
2012-11-27 14:18
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
输入和输出放到两个循环就行,考虑到会覆盖的问题,改用二维数组


[fly]存在即是合理[/fly]
2012-11-27 14:44
快速回复:c语言 单词转换
数据加载中...
 
   



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

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