4 回答

TA貢獻1817條經驗 獲得超6個贊
#include "stdio.h"
#include "string.h"
#include "malloc.h"
void StringCopy(const char *strSource, char *strDestination);
void main()
{
char *strSource={"hello world !"};
char *strDestination;
//給strDestination·分配內存空間,否則運行時會有異常發生
strDestination = (char *) malloc (strlen(strSource) + 1);
if (strDestination == NULL)
{
printf("內存分配失敗 ");
return ;
}
StringCopy(strSource, strDestination);
printf("%s ",strDestination);
free(strDestination);
}
void StringCopy(const char *strSource, char *strDestination)
{
int i=0; //地址計數器
while(*(strSource+i)!='\0')
{
//不能寫成 strDestination++的形式,因為strDestination是字符串的首地址
*(strDestination+i)=*(strSource+i);
i++;
}
*(strDestination+i)='\0';//給拷貝后的字符串加上結束符
}

TA貢獻1874條經驗 獲得超12個贊
假設有2個字符串char* dst, char* src,將src中的字符復制到dst中
while( *dst++ = *src++ )
;
就可以了,其實就是strcpy函數的具體實現過程

TA貢獻1796條經驗 獲得超10個贊
#define maxsize 50
#define true 1
#define false 0
#define other -1
typedef struct
{
char element[maxsize];
int len;
}sstring;
void strcopy(sstring *S,sstring T)
{/*??′?Tμ??μ?′??μ?′?S?D*/
int i;
for(i=0;i<T.len;i++)
S.element[i]=T.element[i];
S->len=T.len;
}
- 4 回答
- 0 關注
- 1622 瀏覽
添加回答
舉報