首先,我要说的是你的代码是有问题的哦,不过都是些语法问题,还是给你写出来,不然运行不过去。
1.if(sizeof str <count1+count2+1)
应为if(sizeof (str1 )<count1+count2+1)
2.printf("\you can not put a quart into a pint pot.")
应为printf("\nyou can not put a quart into a pint pot.")
3.printf(''\n%s\n'',str1)
应为printf("\n%s\n",str1)(注意你的中英文符号“”和"")
然后就是你的问题了.
int count1 =0
int count2 =0
这里是统计str1.str2各有多长,然后把str2的长度归零.
str1为18,str2为21.
那么str1[count1++]=str2[count2++] 的意思就是str1[19]等于str2[0],str[20]=str2[1],str1[21]=str2[2]......依此类推,把所有str2的字符赋给str1。不知道你明白了吗?
最后,没有什么菜鸟之说,大家都是从不熟悉到熟悉的,所以要对自己有信心。
希望我的回答能帮助你。
补充:count1的值是循环结束时的count1++的值,即为19.所以是从str1[19]开始往后继续的。
// void fun(char p1[], char p2[]) 的最后一行p2[j]='\0'
// 改为:
p1[n]='\0' #include <stdio.h>
void fun(char p1[], char p2[])
{
int i=0,j=0,n=0
while(p1[i]!=0)
{
i++
n++
}
while(p2[j]!=0)
{
p1[n]=p2[j]
n++
j++
}
p1[n]='\0'
}
main()
{char s1[80], s2[40] void NONO ()
printf("Enter s1 and s2:\n")
scanf("%s%s", s1, s2)
printf("s1=%s\n", s1)
printf("s2=%s\n", s2)
printf("Invoke fun(s1,s2):\n")
fun(s1, s2)
printf("After invoking:\n")
printf("%s\n", s1)
//NONO()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)