标题:问一个关于将字符串常量赋给一个串的问题
只看楼主
dhr474226642
Rank: 1
来 自:江西省南昌
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-4-17
结帖率:0
已结贴  问题点数:20 回复次数:3 
问一个关于将字符串常量赋给一个串的问题
#include<stdio.h>
#include<stdlib.h>
#define null 0
typedef struct{
    char *ch;
    int length;
}hstring;
void strassign(hstring &t,char *chars){
    int i,c;
    if(t.ch)
        frhars;c;++iee(t.ch);
    for( i=0, c=*c,++c);//计算chars所指向的字符串的长度i
    if(!i)
    {
        t.ch=null;
        t.length=0;
    }
    else
    {
        if(!(t.ch=(char *)malloc(i*sizeof(char))))
            printf("error");
        for(int j=0;j<=i-1;j++)
            t.ch[j]=chars[j];
        t.length=i;
    }
}
void main()
{
   
    char *chars="hdjtdx";
    hstring t;
    strassign(t,chars);

    for(int i=0;i<t.length;i++)
        printf("%c",t.ch[i]);


我写以上程序的原本意图是想将字符串常量"hdjtdx"赋给串t,然后输出串t的内容。其中主函数我还没写完,当主函数执行完strassing(t,chars)时,指针t.ch已经不是指向串t的首地址,所以我想问问各位高手如何将指针t.ch重新指向串t的首地址,再用for循环输出串t的内容.谢谢哦!当然,如果各位有更好的办法实现赋值并输出的话,希望赐教。
搜索更多相关主题的帖子: 字符 常量 
2010-04-22 15:17
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
得分:6 
调用系统的库函数就可以很快的解决这个问题。
我写一个,你看看是否符合你的要求。
程序代码:
#include<stdio.h>
#include<string.h>
void main()
{
    char t[20];
    strcpy(t,"hdjtdx");
    printf("%s",t);
}

南国利剑
2010-04-22 16:33
aufish
Rank: 2
等 级:论坛游民
威 望:1
帖 子:59
专家分:94
注 册:2010-4-22
得分:6 
在strassign里面加多一个指针且等于t.ch。以后的操作交比新的指针,那么t.ch 就没变了。
2010-04-22 16:55
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
得分:6 
你的ch是个指针,chars也是个指针,直接用ch=chars不行么?你那个长度有用么?
#include<stdio.h>
#include<stdlib.h>
typedef struct str
{
    char name[20];
    struct str *next;
}s;
void main()
{
    s *p,*ph,*pf;
    int i;
    char string[20];   
    p=(char *)malloc(sizeof(s));
    pf=ph=p;
    for(i=0;i<10;i++)
    {
         gets(string);
         strcpy(pf.name,string);
        p=(char *)malloc(sizeof(s));   
        pf.next=p;
        pf=p;
    }
    while(ph!=NULL)
    {
        puts(ph.name);
        ph=ph.next;
    }
}
没实验,可能会有点错误,这是最能体现结构体价值的
2010-04-22 20:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-304034-1-1.html




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

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