| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 583 人关注过本帖
标题:为什么不能输出?
只看楼主 加入收藏
henji
Rank: 1
等 级:新手上路
帖 子:227
专家分:0
注 册:2009-4-19
结帖率:38.67%
收藏
已结贴  问题点数:10 回复次数:4 
为什么不能输出?
//对串的操作,输入一个字符串,为什么不能输出?代码该如何修改?
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
#define NULL 0
typedef int Status;

typedef struct
{
    char *ch;
    int length;
}HString;

Status StrAssign(HString &T,char *chars)
{
    char *c;
    int len;
    int i=0;
    int j=0;
    if(T.ch)
        free(T.ch);
    len=strlen(chars);
    if(!i)
    {
        T.ch=NULL;
        T.length=0;
    }
    else
    {
        if(!T.ch)
        {
            exit(OVERFLOW);
        }
        for(i=0;i<strlen(chars);i++)
        {
            T.ch[i]=chars[i];
        }
        T.length=i;
    }
    return OK;
}


Status PrintString(HString T)
{
    int i=0;
    for(i=0;i<T.length;i++)
    {
        printf("%c",T.ch[i]);
    }
    return OK;
}
int _tmain(int argc, _TCHAR* argv[])
{
    int pos,len;
    int i=0;
    int k=0;
    HString S1,S2,T,Sub;
    char chars[20];
    printf("input S1:\n");
    scanf("%s",chars);
    StrAssign(S1,chars);
    PrintString(T);
    return 0;
}
搜索更多相关主题的帖子: 输出 
2009-12-17 15:27
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:3 
先把那些 未使用的变量 去掉。

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2009-12-17 18:23
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:3 
你的程序很有问题

学习需要安静。。海盗要重新来过。。
2009-12-17 18:57
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
#define NULL 0
typedef int Status;

typedef struct
{
    char *ch;
    int length;
}HString;

Status StrAssign(HString &T,char *chars)
{
    int i=0;
    /*if(T.ch)
        free(T.ch);
        */
     printf("%d",strlen(chars));

   while(i<strlen(chars))
   {
       if(i==0)
    {
        T.ch=NULL;
        T.length=0;
        i=1;
    }
    else
    {
        T.ch=(char *)malloc(strlen(chars));
        
        if(!T.ch)
        {
            printf("OVERFLOW");
            exit(OVERFLOW);
        }
        for(i=0;i<strlen(chars);i++)
        {
            T.ch[i]=chars[i];
        }
        T.length=i;
        
    }
   }

    return OK;
   
}


Status PrintString(HString T)
{

    for(int i=0;i<T.length;i++)
    {
        printf("%c",T.ch[i]);
    }
    return OK;
}
int main(void)
{
    HString HS;
    char chars[20];
    printf("input HS:\n");
    gets(chars);
   
   
    StrAssign(HS,chars);

    PrintString(HS);

    system("pause");
    return 0;
}

学习需要安静。。海盗要重新来过。。
2009-12-17 19:37
maoyan20034
Rank: 2
等 级:论坛游民
帖 子:27
专家分:46
注 册:2009-11-30
收藏
得分:3 
StrAssign(S1,chars)
传递过去应该是个指针吧,
Status StrAssign(HString &T,char *chars)
就是*T,,怎么是个地址类。。高手见解一下吧

有时候沉迷是一种境界!
不是非主流!不是信春哥! 是C语言!

  
2009-12-17 21:13
快速回复:为什么不能输出?
数据加载中...
 
   



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

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