在C语言中利用指针实现2个字符串的连接。
时间: 2024-05-01 19:20:06 浏览: 12
可以通过以下代码实现两个字符串的连接:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[50] = "Hello";
char str2[] = " World!";
char *ptr1 = str1;
char *ptr2 = str2;
// 移动指针到字符串末尾
while (*ptr1 != '\0') {
ptr1++;
}
// 将第二个字符串连接到第一个字符串末尾
while (*ptr2 != '\0') {
*ptr1 = *ptr2;
ptr1++;
ptr2++;
}
// 输出连接后的字符串
printf("%s", str1);
return 0;
}
```
这段代码中,我们首先将两个字符串分别存储到 `str1` 和 `str2` 数组中,然后定义两个指针 `ptr1` 和 `ptr2` 分别指向它们的首地址。接着,我们利用 `ptr1` 移动到 `str1` 的末尾,再利用 `ptr2` 将 `str2` 的内容连接到 `str1` 末尾。最后输出连接后的字符串。
相关问题
用C语言编程利用指针实现2个字符串的连接
可以先找到第一个字符串的结尾位置,然后从该位置开始将第二个字符串复制到第一个字符串后面。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void str_concat(char *s1, char *s2) {
// 找到s1的结尾位置
while (*s1) {
s1++;
}
// 将s2复制到s1后面
while (*s2) {
*s1 = *s2;
s1++;
s2++;
}
*s1 = '\0'; // 添加字符串结束标志
}
int main() {
char str1[100] = "Hello";
char str2[] = "world!";
str_concat(str1, str2);
printf("%s\n", str1); // 输出 "Hello world!"
return 0;
}
```
在上面的代码中,`str_concat` 函数接受两个指向字符串的指针 `s1` 和 `s2`,并将 `s2` 复制到 `s1` 的结尾位置。首先,`while (*s1)` 循环找到 `s1` 的结尾位置,然后 `while (*s2)` 循环将 `s2` 中的每一个字符复制到 `s1` 后面,直到 `s2` 的结尾位置。最后,添加字符串结束标志 `\0`。
c语言利用指针实现 2 个字符串的连接
可以通过指针操作实现两个字符串的连接,具体的实现方法如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello";
char str2[20] = "world";
char *p = str1 + strlen(str1); // 指向 str1 结尾的空字符
while (*str2 != '\0') {
*p++ = *str2++; // 将 str2 拼接到 str1 后面
}
*p = '\0'; // 在 str1 后面添加结尾的空字符
printf("Concatenated string: %s\n", str1);
return 0;
}
```
在这个例子中,我们首先定义了两个字符串 `str1` 和 `str2`,并且定义了一个指针 `p`,它初始时指向 `str1` 结尾的空字符。然后,在一个循环中,我们将 `str2` 中的字符一个一个地拼接到 `str1` 后面,此时指针 `p` 会不断地向后移动,直到指向 `str1` 和 `str2` 拼接后的字符串的结尾。最后,我们在拼接后的字符串的结尾处添加一个空字符,以便正确地结束字符串。最终,我们打印出拼接后的字符串。