C语言程序设计实践-函数与指针综合编程实验

实验目的及要求:

1掌握指针做为函数参数与变量作为函数参数的区别;

2掌握指针作为函数参数与数组做为函数参数的关系;

2能正确使用指针作为函数参数进行程序设计;

3掌握函数返回值类型为指针类型的含义;

4能正确使用函数返回值类型为指针类型进行程序设计。

软硬件环境:

1、硬件环境:PC机一台

2、软件环境:Codeblocks

算法或原理分析(实验内容):

1.写一函数,将一个字符串逆置。

 ●编程要求:

  (1)要求使用指针作为函数参数;

  (2)在主函数中输入字符串,并输出逆置后的字符串。

●编程提示:

  (1)在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋给pstr;

  (2)调用逆置函数reverse(char *p),将字符串逆置;

  (3)在主函数中输出逆置后的函数。

2.编写函数,实现两个串的连接。

 ●编程要求:

  (1)要求连接函数的参数和返回值类型均为指针类型;

(2)要求在主函数中输入连接前的两个字符串,连接后,在主函数中输出连接后的字符串。

●编程提示:

函数原型可以写成如下形式:

(1)char* strcat(char* str1,char* str2);

(2)返回连接好的字符串的首地址。

运行代码

1#include

#include

void reverse(char* p) {

    int len = strlen(p);

    for (int i = 0; i < len / 2; i++) {

        char temp = *(p + i);

        *(p + i) = *(p + len - i - 1);

        *(p + len - i - 1) = temp;

    }

}

int main() {

    char str[100];

    printf("请输入一个字符串:");

    fgets(str, sizeof(str), stdin);

    str[strcspn(str, "\n")] = '\0';

    char* pstr = str;

    reverse(pstr);

    printf("逆置后的字符串为:%s\n", pstr);

    return 0;

}

2、#include

#include

#include

char* concat(char* str1, char* str2) {

    int len1 = strlen(str1);

    int len2 = strlen(str2);

    char* new_str = (char*)malloc((len1 + len2 + 1) * sizeof(char));

    strcpy(new_str, str1);

    strcat(new_str, str2);

    return new_str;

}

int main() {

    char str1[100];

    char str2[100];

    printf("请输入第一个字符串:");

    fgets(str1, sizeof(str1), stdin);

    printf("请输入第二个字符串:");

    fgets(str2, sizeof(str2), stdin);

    str1[strcspn(str1, "\n")] = '\0';

    str2[strcspn(str2, "\n")] = '\0';

    char* new_str = concat(str1, str2);

    printf("连接后的字符串为:%s\n", new_str);

    free(new_str);

    return 0;

C语言程序设计实践-函数与指针综合编程实验_第1张图片

C语言程序设计实践-函数与指针综合编程实验_第2张图片

你可能感兴趣的:(c语言,开发语言)