2012-03-20 87 views
-3

作为学习技术,我想使自己的下列字符串函数的副本我自己的strcpy函数

char * mystrcpy(char *a, char *b); 
// string copy. destroys a but not b. 
// identical to strcpy in <string.h> 
// running time O(mystrlen(b)) 

因为string a是我来到这个

char * mystrcpy(char *a, char *b){ 
a = b; 
return a; 

} 

在记忆中的一个随机查克林我想只分配给string b ...我的解释是否正确?

+4

您至少需要**尝试**。我们不是来为你做功课的。写一些你认为可能有用的代码,如果你遇到困难,请回过头来问一些具体的问题。 – 2012-03-20 14:56:23

+0

@GrahamBorland:尽管您的评论通常是真实的,但OP明确指出了他打算做的事情并询问具体的问题。他不是要求某人为他做功课。国际海事组织这是一个有效的问题:\ – amit 2012-03-20 14:59:04

+3

请不要使这种方法到你的家庭作业[你的M.O.](http://stackoverflow.com/questions/9771624/introduction-to-array)在这里。试着自己回答这个问题。告诉我们你试过的东西。即使它完全和完全错误。 – Bart 2012-03-20 14:59:32

回答

2

使用a[i]访问字符串中的特定字符[索引0​​],就像数组一样。 [请记住,在C中,一个字符串实际上是一个数组char s]。

您应该迭代字符串,直到您“看到”一个'\0' char - 它指示字符串的结尾。

是的,与字符operator<比较它们的ASCII值 - 这可能是你需要的。

+0

说我有'char * u =“bbcdef”;'如果我想访问'b'我会做你[0]? – Thatdude1 2012-03-20 15:45:46

+0

@Beginnernato:是的,您可以使用'u [0]'获得第一个'b'。请注意,因为你在这里的字符串是一个字符串文字,你只能读'u [0]'而不能改变它。 – amit 2012-03-20 15:47:10

+0

@Beginnernato'* b!='\ 0'' [在循环的停止条件中]仅检查数组中的第一个元素,您可能正在寻找'b [i]!='\ 0''。同样,在循环的第一次检查中:'(i> strlen(a)'你需要'<=',记住数组[和字符串]从0开始,而不是从1开始。 – amit 2012-03-20 16:23:17