差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| aa [2024/12/02 18:28] – doge24190 | aa [2025/04/15 01:32] (当前版本) – doge24190 | ||
|---|---|---|---|
| 行 7: | 行 7: | ||
| 点击下载 | 点击下载 | ||
| - | 以下是根据题目要求设计的两个C语言程序: | + | {{tag>存档}} |
| - | + | ||
| - | (1) insert函数 | + | |
| - | + | ||
| - | 设计一个char* insert(char* s1, char* s2, int n)函数,在字符串s1的第n个位置插入字符串s2: | + | |
| - | + | ||
| - | #include < | + | |
| - | #include < | + | |
| - | #include < | + | |
| - | + | ||
| - | char* insert(char* s1, char* s2, int n) { | + | |
| - | int len1 = strlen(s1); | + | |
| - | int len2 = strlen(s2); | + | |
| - | char* result = (char*)malloc(len1 + len2 + 1); // 分配新的内存 | + | |
| - | + | ||
| - | if (n > len1) n = len1; // 防止n超出范围 | + | |
| - | + | ||
| - | // 拷贝s1前n个字符 | + | |
| - | strncpy(result, | + | |
| - | result[n] = ' | + | |
| - | + | ||
| - | // 拼接s2 | + | |
| - | strcat(result, | + | |
| - | + | ||
| - | // 拼接s1剩余部分 | + | |
| - | strcat(result, | + | |
| - | + | ||
| - | return result; | + | |
| - | } | + | |
| - | + | ||
| - | int main() | + | |
| - | char s1[100], s2[100]; | + | |
| - | int n; | + | |
| - | + | ||
| - | printf(" | + | |
| - | scanf(" | + | |
| - | printf(" | + | |
| - | scanf(" | + | |
| - | printf(" | + | |
| - | scanf(" | + | |
| - | + | ||
| - | char* result = insert(s1, s2, n); | + | |
| - | printf(" | + | |
| - | + | ||
| - | free(result); | + | |
| - | return 0; | + | |
| - | } | + | |
| - | + | ||
| - | (2) 改写strcpy函数 | + | |
| - | + | ||
| - | 利用指针实现char* strcpy(char* s1, char* s2)的功能: | + | |
| - | + | ||
| - | #include <stdio.h> | + | |
| - | + | ||
| - | char* strcpy_custom(char* s1, char* s2) { | + | |
| - | char* p = s1; // 保存起始地址 | + | |
| - | while ((*s1++ = *s2++) != ' | + | |
| - | return p; | + | |
| - | } | + | |
| - | + | ||
| - | int main() { | + | |
| - | char s1[100], s2[100]; | + | |
| - | + | ||
| - | printf(" | + | |
| - | scanf(" | + | |
| - | + | ||
| - | strcpy_custom(s1, | + | |
| - | printf(" | + | |
| - | + | ||
| - | return 0; | + | |
| - | } | + | |
| - | + | ||
| - | 以上代码分别完成了两个任务,运行后输入测试数据即可查看结果。 | + | |