现在的位置: 首页 > 综合 > 正文

C语言 写一个函数,将一维数组中的元素逆序存放

2018年05月09日 ⁄ 综合 ⁄ 共 1071字 ⁄ 字号 评论关闭
//
//  main.c
//  c_test2
//
//  Created by vincent_guo on 13-3-26.
//  Copyright (c) 2013年 vincent_guo. All rights reserved.
//

#include <stdio.h>
#include <string.h>

//写一个函数,将一维数组中的元素逆序存放(用指针做这题)
//逆序存放第一种写法
void reverseChar(char strs[]){
    //strlen()方法在string.h的头文件中,所以这里要include <string.h>
    size_t count = strlen(strs);
    //定义一个指针指向strs的内存地址
    char *p = strs;
    char tmp;
    for (int i = 0; i < count/2 ; i++) {
        tmp = *(p+i);
        *(p+i) = *(p + count - 1 - i);
        *(p + count - 1 - i) = tmp;
    }
    
}

//逆序存放第一种写法
void reverseChar2(char strs[]){
    size_t count = strlen(strs);
    int left = 0;
    int right = count-1;
    char *p = strs;
    while (left < right) {
        char tmp = *(p + left);
        *(p + left) = *(p + right);
        *(p + right) = tmp;
        
        left ++;
        right --;
    }
}



int main(int argc, const char * argv[])
{
    //C语言是没有String类型的 它用char的数组来表示字符串
    char strs[] = "ios_php_java";
    printf("倒序前的字符串为:%s\n",strs);
    reverseChar(strs);
    printf("倒序后的字符串为:%s\n",strs);
    reverseChar2(strs);
    printf("再次倒序后的字符串为:%s\n",strs);
    
    printf("------------------------------\n");
    
    printf("本机是64位,int基本类型占用的字节数为:%d\n",sizeof(int));
    printf("本机是64位,char基本类型占用的字节数为:%d\n",sizeof(char));
    printf("本机是64位,long基本类型占用的字节数为:%d\n",sizeof(long));
    printf("本机是64位,float基本类型占用的字节数为:%d\n",sizeof(float));

    return 0;
}

运行结果

抱歉!评论已关闭.