下面程序的功能是:调用merge函数,实现将指针s所指的字符串的反序和正序连接后形成一个新的字符串并存放在原处。如字符串为 “1234”,执行函数后,字符串为“12344321”.c语言编写
时间: 2024-05-16 10:16:01 浏览: 158
C语言程序设计-将主函数中输入的字符串反序存放;例如:输入字符串“abcdefg”,则应输出“gfedcba”;.c
5星 · 资源好评率100%
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
void merge(char *s) {
int len = strlen(s); // 获取字符串长度
char *p = s + len; // 指针p指向字符串结束位置
while (--p >= s) { // 倒序遍历字符串
*(p + len) = *p; // 将每个字符复制到新字符串的末尾
}
strncpy(s + len, s, len); // 将原字符串复制到新字符串的末尾
*(s + 2 * len) = '\0'; // 末尾添加结束符
}
int main() {
char s[] = "1234";
printf("Before merge: %s\n", s);
merge(s);
printf("After merge: %s\n", s);
return 0;
}
```
程序先通过`strlen`函数获取字符串`s`的长度,然后定义一个指针`p`指向字符串的最后一个字符。接着使用`while`循环倒序遍历字符串,将每个字符复制到新字符串的末尾。最后,使用`strncpy`函数将原字符串复制到新字符串的末尾,并在末尾添加结束符。程序运行结果如下:
```
Before merge: 1234
After merge: 12344321
```
阅读全文