C语言中如何进行字符串的倒序排列

1 引言

本文是讲解字符串的倒序排列,在C语言中对字符串的操作可以说是无处不在,其作用不言而喻。下面就用2种不同的方法对字符串进行倒序排列。

2 功能实现

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

/* 方法一: */
static int string_t1(void)
{
	char *str = {"Hello, world!"};
	printf("before:%s\n", str);

	int len = strlen(str);
	char * std = (char *)malloc(len+1); /*要多分配一个空间*/
	char *p = std;
	char *s = &str[len-1];/*指向最后一个字符*/

	while(len-- != 0)
	{
		*p++ = *s--;
	}
	*p = '\0'; /*尾部要加'\0'*/
	printf("after:%s\n", std);

	free(std); /*使用完,应该释放空间,以免造成内存泄漏*/
	std = NULL; /*防止产生野指针*/
}

/* 方法二: */
static int string_t2(void)
{
	char t;
	char str[] = "Are you ok!";

	printf("before:%s\n", str);

	//int len = sizeof(str)-1;
	int len = strlen(str);

	for(int i = 0; i < len/2; i++)
	{
		t = str[i];
		str[i] = str[len-i-1];
		str[len-i-1] = t;
	}
	printf("after:%s\n", str);
}

int main(int argc, char const *argv[])
{
	string_t1();
	string_t2();

	return 0;
}

3 编译

说明:编译环境Ubuntu,如果没有安装Ubuntu或者CentOS, 在网上自行下载VC++6.0中文版或者Visual Studio(VS2017)进行安装后编译。在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值