怎么给一个指向自身的结构中用指针定义的字符串中的某一个字符赋值

如何给一个指向自身的结构中用指针定义的字符串中的某一个字符赋值?
形如:
struct   mStruct
{
        char   *data;
        struct   mStruct   *next;
}*myStruct;

现在
想为data字符串中字符挨个赋
另一个字符串中的某个指定的值

赋值语句应该怎么写呢?



------解决方案--------------------
myStruct-> data=(char*)malloc(strlen(str)+1);
strcpy(myStruct-> data,src);
-----------------------------
myStruct-> next=myStruct;
------解决方案--------------------
myStruct = (struct mStruct*)malloc(sizeof(struct mStruct));
myStruct-> data = (char*)malloc(10*sizeof(char));
myStruct-> next = myStruct; // 指向自身

strcpy(myStruct-> data, "test ");
------解决方案--------------------
char* getstr(char* str, char ch)
{
int iLen=strlen(str), iCnt=0;
for (int i=0; i <iLen; ++i) if (str[i]==ch) ++iCnt;
str = (char*)malloc(iCnt+1);
memset(str,iCnt,ch);
str[iCnt]=0;
return str;
}

void main()
{
char *source= "testmypatient ";
char *data = getstr(source);
printf(data);
free(data);
}