#include<stdio.h>
/* strcat: concatenate t to end of s; s must be big enough */
void strcat(char s[], char t[])
{
int i, j;
i = j = 0;
while (s[i++] != '\0'); /* find end of s */
while ((s[i++] = t[j++]) != '\0'); /* copy t */
}
int main (void)
{
char s[15]= "Boy And ", t[5] = "Girl"; /*如果把t[5]改为t[4],则得不到正确的值, 但"girl"的长度是为4呀. 难道要包括'\0'*/
strcat (s, t);
printf ("%s\n", s);
getch ();
return 0;
}
----------------解决方案--------------------------------------------------------
character string end symbol
----------------解决方案--------------------------------------------------------
while (s[i++] != '\0'); /* find end of s */
while ((s[i++] = t[j++]) != '\0');
have question , you see see
----------------解决方案--------------------------------------------------------
while (s[i++] != '\0'); /* find end of s */
i=i-1;
while ((s[i++] = t[j++]) != '\0'); /* copy t */
The qusetion is here!
----------------解决方案--------------------------------------------------------
[QUOTE]/*如果把t[5]改为t[4],则得不到正确的值, 但"girl"的长度是为4呀. 难道要包括'\0'*/[/QUOTE]
对!
楼上俩个都错了:)
----------------解决方案--------------------------------------------------------
int i, j;
i = j = 0;
while (s[i++] != '\0'); /* find end of s */
while ((s[i++] = t[j++]) != '\0'); /* copy t */
这是什么循环?看不懂.怎么没有循环体啊?
----------------解决方案--------------------------------------------------------
呵呵,小时候看这种高密度代码感到很有趣,
后来被老师骂了一顿,规矩了。楼主您要理解知识点,搞这种蛮好,
但希望不要应用到实际.....
----------------解决方案--------------------------------------------------------
4楼是对的
----------------解决方案--------------------------------------------------------
不好意思..老K.你再回复的刚才没看见..嘿嘿..
[此贴子已经被作者于2006-5-17 20:02:10编辑过]
----------------解决方案--------------------------------------------------------
while (s[i++] != '\0'); /* find end of s */
i=i-1;
while ((s[i++] = t[j++]) != '\0'); /* copy t */
The qusetion is here!
谢谢. 如果是while (s[i++] != '\0'); 则递增到s[9]. 但如果是while (s[++i] != '\0'); 和while (s[i= i+1] != '\0'); ,则只递增到s[8].
是不字符数组"Boy And "的'B'前面还有一个空格or NULL? 不然如果使用++i, 则第一次时s[++i]会等于s[1] = 'o'. 而不等于'B. '这样也可以解释为什么i++时, i会变为s[9] 才等于'\0'. 当最终输出时,实际上空格不会被显示.
----------------解决方案--------------------------------------------------------