C语言指针实现字符串逆序反转

该博客介绍了如何使用C语言进行字符串逆序操作。通过定义两个指针,一个从字符串开始,一个从末尾开始,进行逐位交换,实现了字符串的逆序。文章强调了strlen函数在计算字符串长度中的作用,并指出直接修改传入函数的字符串是可行的,但可能影响原始数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


void rec(char* arr)
{
	//int len = sizeof(arr);  // 判断字符串长度需要用strlen。
	int len = strlen(arr);
	printf("字符串长度len = %d\n", len);
	char* p1 = arr;
	char* p2 = &arr[len - 1];
	while (p1 < p2)
	{
		char temp = *p1;
		*p1 = *p2;
		*p2 = temp;
		p1++;
		p2--;
	}
}

int main()
{
	char arr[] = "hello world";
	rec(arr); 
	printf("逆序之后输出为:%s\n", arr);
	system("pause");
	return 0;
}

知识点:

  • 判断字符串长度需要用到string.h下的strlen函数方法。
  • 算法层面:
    • 逆序就是头尾逐位交换,所以选定两个指针,一个在首,一个在尾。
    • 指针可以直接比较大小。所以才有了while(p1<p2)来将算法执行的终点找到。
  • 因为传入函数方法rec的是地址,所以可以直接修改了原始数据。为了如果为了保护原始数据,需要复制一份另用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值