| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:请教!一道练习题的容错处理!!
只看楼主 加入收藏
t55312153
Rank: 2
等 级:论坛游民
帖 子:19
专家分:43
注 册:2011-12-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
请教!一道练习题的容错处理!!
用函数实现字符串连接的功能!我想让两个字符串在超出范围后重新输入,我在主函数中使用了do while  但是测试总不能实现重复输入?以下我写的代码 请问问题出在哪里?求教!!!

#include <stdio.h>
#include <string.h>
int s(char a[],char b[])
{
    int t1,t2,i,j;
    t1=strlen(a);
    t2=strlen(b);
    if(t1+t2>=20)
    {
        printf("error!!\n");
        return 0;
    }
    else
    {
    for(i=t1,j=0;j<t2;j++,i++)
    a[i]=b[j];
    return 1;
    }
}
   
char str(char a[])
{
    int i;
    printf(“enter string:\n”);
    for(i=0;i<20;i++)
    {
    scanf("%c",&a[i]);
    if (a[i]=='\n') break;
    }
    a[i]='\0';
}
main()
{
    char a[20],b[20];
    do
    {
    str(a);
    str(b);
    s(a,b);
    }
    while(s==0);
    puts(a);
}
   
搜索更多相关主题的帖子: include 练习题 return 
2011-12-26 16:42
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
真是乱写呀,
while(s==0);
s是什么你就直接判断是否等于0

总有那身价贱的人给作业贴回复完整的代码
2011-12-26 16:51
t55312153
Rank: 2
等 级:论坛游民
帖 子:19
专家分:43
注 册:2011-12-23
收藏
得分:0 
请问楼上这么改可以么?新手才学了1个多月 ,还请多多指教!!
main()
{
    char a[20],b[20];
    int c;
    do
    {
    str(a);
    str(b);
    c=s(a,b);
    }
    while(c==0);
    puts(a);
}
2011-12-26 16:54
t55312153
Rank: 2
等 级:论坛游民
帖 子:19
专家分:43
注 册:2011-12-23
收藏
得分:0 
回复 2楼 embed_xuel
请教该怎么处理这个问题!!
2011-12-26 16:57
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:20 
程序代码:
#include "stdafx.h"
#include <stdio.h>
#include <string.h>

int s(char a[],char b[])
{
    int t1,t2,i,j;
    t1=strlen(a);
    t2=strlen(b);

    if(t1+t2>=20)
    {
        printf("error!!\n");
        return 0;
    }
    else
    {
        for(i=t1,j=0;j<=t2;j++,i++) //这里需要把数组B[]的结束符'\0'写入数组a[]的最后,否则合并后的数组最后是无规则的乱码。
            a[i]=b[j];
        return 1;
    }
}
   
void str(char a[])
{
    int i;
    printf("enter string:\n");
    for(i=0;i<20;i++)
    {
        scanf("%c",&a[i]);
        if (a[i]=='\n') break;
    }
    a[i]='\0';
}

int main(void)
{
    char a[20],b[20],i;

    do
    {
        str(a);
        str(b);
        i=s(a,b);
    }
    while(i==0); //这里不能直接用s,s代表函数s()的入口地址,可以用printf("%d\n",s);来查看s的值。相关知识请查看 《C Primer plus》14.14 函数和指针

    puts(a);
   getchar();
   return 0;
}
2011-12-26 22:43
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:0 
楼主才学1个月就能写出来这种代码,说明还是肯下功夫,并有一定天赋的,加油吧。
2011-12-26 22:47
t55312153
Rank: 2
等 级:论坛游民
帖 子:19
专家分:43
注 册:2011-12-23
收藏
得分:0 
回复 6楼 ggyy4k
领教!!
2011-12-27 10:05
快速回复:请教!一道练习题的容错处理!!
数据加载中...
 
   



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

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