aa

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
aa [2024/12/02 18:28] doge24190aa [2025/04/15 01:32] (当前版本) doge24190
行 7: 行 7:
 点击下载 点击下载
  
-以下是根据题目要求设计的两个C语言程序: +{{tag>存}}
- +
-(1) insert函数 +
- +
-设计一个char* insert(char* s1, char* s2, int n)函数,在字符串s1的第n个位置插入字符串s2: +
- +
-#include <stdio.h> +
-#include <string.h> +
-#include <stdlib.h> +
- +
-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, s1, n); +
-    result[n] = '\0'; +
- +
-    // 拼接s2 +
-    strcat(result, s2); +
- +
-    // 拼接s1剩余部分 +
-    strcat(result, s1 + n); +
- +
-    return result; +
-+
- +
-int main() { +
-    char s1[100], s2[100]; +
-    int n; +
- +
-    printf("请输入字符串s1: "); +
-    scanf("%s", s1); +
-    printf("请输入字符串s2: "); +
-    scanf("%s", s2); +
-    printf("请输入插入位置n: "); +
-    scanf("%d", &n); +
- +
-    char* result = insert(s1, s2, n); +
-    printf("结果字符串: %s\n", result); +
- +
-    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++) != '\0'); // 逐字符复制 +
-    return p; +
-} +
- +
-int main() { +
-    char s1[100], s2[100]; +
- +
-    printf("请输入源字符串s2: "); +
-    scanf("%s", s2); +
- +
-    strcpy_custom(s1, s2); +
-    printf("复制结果s1: %s\n", s1); +
- +
-    return 0; +
-} +
- +
-以上代码分别完成了两个任务,运行后输入测试数据即可查看结果。+
  • aa.1733135330.txt.gz
  • 最后更改: 2024/12/02 18:28
  • doge24190