|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#define MAX 1024
int main()
{
char str1[2 * MAX]; // 确保连接后不越界
char str2[MAX];
char *target1 = str1;
char *target2 = str2;
printf("请输入第一个字符串:");
fgets(str1, MAX, stdin);
printf("请输入第二格字符串:");
fgets(str2, MAX, stdin);
// 将指针指向 str1 的末尾处
while (*target1++ != '\0')
;
// 我们希望 str1 最后边的 '\0' 和 '\n' 都被覆盖掉
target1 -= 2;
// 连接字符串
while ((*target1++ = *target2++) != '\0') // (*target1++ = *target2++) ??? 第一次循环的时候,是不是只取*target2指针的值而不自增?而*target1++却取自增后的指针指向的值?
;
printf("连接后的结果是:%s", str1);
return 0;
}
先执行 *target1 = * target2;
再判断 *target1 != '\0'
最后 执行 target1++ 和 target2++
|
|