首页 > 其他 > 详细

C 语言中将字符串倒 输出

时间:2014-02-25 20:05:32      阅读:323      评论:0      收藏:0      [点我收藏+]

下面给大家分享一下这些代码,共有两种方法实现,用指针实现如下:

#include <stdio.h>

int main()
{
    char *src ="hello world";
    int len = strlen(src);
    char *dest = (char *)malloc(len+1);//要分配一个内存空间
    char *d =dest;
    char *s = &src[len-1];//指向最后一个字符
    while (len--!=0)
        *d++ = *s--;
        *d=0;//尾部要加‘\0‘
        printf("%s\n",dest);
        free(dest);//使用完应当释放空间,以免造成内存泄漏
        dest = NULL;//防止产生野指针
    return 0;
}

用数组实现如下:

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

int main()
{
char str[] = "Hello world";
    int len = strlen(str);
    char t;
    for (int i =0; i<len/2; i++) {
        t =str[i];
        str[i] = str[len-i-1];//交换字符
        str[len-i-1] = t;
    }
    printf("%s\n",str);
    return 0;
}

Heap与stack得差别:

Heap是堆,stack是栈

stack得空间由操作系统自动分配/释放,Heap的空间手动分配/释放

stack的空间有限,Heap 是很大的自由存储区

C中的malloc函数分配的内存空间即在堆上,C++中对应的new操作符

程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行

C 语言中将字符串倒 输出

原文:http://blog.csdn.net/hanhailong18/article/details/19897703

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!