c语言利用指针实现 2 个字符串的连接
时间: 2023-06-24 18:05:14 浏览: 48
可以通过指针操作实现两个字符串的连接,具体的实现方法如下:
```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` 拼接后的字符串的结尾。最后,我们在拼接后的字符串的结尾处添加一个空字符,以便正确地结束字符串。最终,我们打印出拼接后的字符串。
相关问题
C语言利用指针实现2个字符串的连接
可以使用指针和循环来实现两个字符串的连接,具体步骤如下:
1. 定义两个字符串 char* str1 和 char* str2,分别存储两个字符串的内容。
2. 定义一个新的字符串 char* result,用于存储连接后的结果。
3. 定义两个指针 p1 和 p2,分别指向 str1 和 str2 的首字符。
4. 定义一个指针 p3,指向 result 的首字符。
5. 使用 while 循环,将 str1 中的字符逐一复制到 result 中,并移动指针 p1 和 p3。
6. 再次使用 while 循环,将 str2 中的字符逐一复制到 result 中,并移动指针 p2 和 p3。
7. 最后,在 result 的末尾添加一个 null 字符 '\0',表示字符串的结束。
下面是一段示例代码:
```
#include <stdio.h>
#include <string.h>
int main()
{
char* str1 = "hello";
char* str2 = "world";
char result[100];
char* p1 = str1;
char* p2 = str2;
char* p3 = result;
while (*p1 != '\0') {
*p3 = *p1;
p1++;
p3++;
}
while (*p2 != '\0') {
*p3 = *p2;
p2++;
p3++;
}
*p3 = '\0';
printf("The concatenated string is: %s", result);
return 0;
}
```
输出结果为:
```
The concatenated string is: helloworld
```
c语言利用指针实现 2 个字符串的连接。
可以使用指针来实现字符串的连接,具体实现方法如下:
```c
#include <stdio.h>
#include <string.h>
void my_strcat(char *s1, char *s2)
{
while (*s1) { // 找到 s1 的结尾
s1++;
}
while (*s2) { // 把 s2 中的字符逐个拷贝到 s1 的结尾
*s1++ = *s2++;
}
*s1 = '\0'; // 在 s1 的结尾添加一个字符串结束标志
}
int main()
{
char s1[100] = "Hello, ";
char s2[] = "world!";
my_strcat(s1, s2);
printf("%s\n", s1); // 输出 "Hello, world!"
return 0;
}
```
这里定义了一个 `my_strcat` 函数,它的参数是两个字符指针 `s1` 和 `s2`,分别表示要连接的两个字符串。首先,使用一个 `while` 循环找到 `s1` 的结尾,然后再使用另一个 `while` 循环将 `s2` 中的字符逐个拷贝到 `s1` 的结尾,最后在 `s1` 的结尾添加一个字符串结束标志 `\0`。