编写带有函数的程序,函数表达式fun(s1,s2) 功能是将字符数组s2中的字符串拷贝到字符数 组s1中。拷贝时,10'也拷贝过去。
时间: 2024-05-16 10:18:13 浏览: 36
以下是一个示例程序,其中包含了一个名为`fun`的函数,用于将字符串数组`s2`中的所有字符串拷贝到`s1`中,包括`'\0'`和`'\n'`。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 100
void fun(char s1[], char s2[]) {
int i, j, k;
for (i = 0, k = 0; s1[i] != '\0'; i++) {
if (s1[i] == '\n') {
s1[i] = '\0'; // 将换行符替换为字符串结束符
}
}
for (i = 0; s2[i] != '\0'; i++) {
if (s2[i] == '\n') {
s1[k++] = '\n'; // 拷贝换行符
s1[k] = '\0'; // 在新字符串末尾添加结束符
} else {
s1[k++] = s2[i]; // 拷贝字符
}
}
}
int main() {
char s1[MAX_LENGTH] = "Hello, world!";
char s2[MAX_LENGTH] = "This is a test.\n";
printf("Before: s1 = %s\n", s1);
printf("Before: s2 = %s\n", s2);
fun(s1, s2);
printf("After: s1 = %s\n", s1);
printf("After: s2 = %s\n", s2);
return 0;
}
```
注意,为了确保`s1`数组中的原有字符串被正确替换,我们需要先遍历一遍`s1`数组,并将其中的换行符替换为字符串结束符。在`s2`数组被拷贝到`s1`数组中时,如果遇到了换行符,则需要将其拷贝到新字符串中,并在新字符串末尾添加结束符。
阅读全文