|
发表于 2020-3-6 16:27:36
|
显示全部楼层
- #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')// 当target1指向第一个字符串的末尾‘\0'字符时,满足循环终止条件,并执行一次target1++; 所以跳出循环后target1指向‘\0'后的一个字符位置。
- ;
- // 我们希望 str1 最后边的 '\0' 和 '\n' 都被覆盖掉
- target1 -= 2; // target1 向后退两字字符,指向’\0'之前的一个字符,如果你的字符串中最后一个有效字符时’\n'的话,那么这时target1指向的就是‘\n'这个字符。
- // 连接字符串
- while ((*target1++ = *target2++) != '\0') \\ 将target2 指向的字符逐一赋给从'\n'开始之后的空间,直到target2所指的字符为‘\0',然后跳出循环
- ;
- printf("连接后的结果是:%s", str1);
- return 0;
- }
复制代码 |
|