问一个关于将字符串常量赋给一个串的问题
#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的内容.谢谢哦!当然,如果各位有更好的办法实现赋值并输出的话,希望赐教。