黑马程序员技术交流社区

标题: 要求:用 指针 调用 函数 交换了两个字符串的内容 [打印本页]

作者: 李言    时间: 2015-6-16 21:29
标题: 要求:用 指针 调用 函数 交换了两个字符串的内容
//
//  main.c
//  指针练习8
//
//  Created by 李言 on 15/6/16.
//  Copyright (c) 2015年 ly. All rights reserved.
//

#include <stdio.h>
#include <string.h>
#define SIZE 100
//要求:用 指针 调用 函数 交换了两个字符串的内容
void strJiaoHuan(char *p1, char *p2);
int main(){
//    定义两个字符串,并用指针指向
    char str1[SIZE]="\0";
    char str2[SIZE]="\0";
    char *p1 = str1;
    char *p2 = str2;
//    提示并输入两个句子
    printf("输入句子1\n");
    gets(p1);
    printf("输入句子2\n");
    gets(p2);
//    调用函数
    strJiaoHuan(p1, p2);
//    输出
    puts(p1);
    puts(p2);
    return 0;
}

void strJiaoHuan(char *p1, char *p2){
//    定义中间字符串
    char str3[SIZE] = "\0";
    char *p3 = str3;
//    计算原两个句子长度并取较长的长度
    long int len1, len2, len;
    len1 = strlen(p1);
    len2 = strlen(p2);
    len = len1>len2 ? len1 : len2;
//    交换
    int i = 0;
    for(i=0; i<len; i++){
        *(p3+i) = *(p1+i);
        *(p1+i) = *(p2+i);
        *(p2+i) = *(p3+i);
    }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2