字符串逆序的几种解决方法

本文介绍了两种在C语言中处理字符串逆序的方法:一种是使用gets函数读取并逐个打印字符,另一种是定义Reverse函数接收字符串和长度,通过指针交换实现逆序。作者还展示了如何将gets用于接收任意长度的字符串进行逆序。
摘要由CSDN通过智能技术生成

好久不见!关于位操作符的题目雯雯就放到下次吧,因为雯雯还没整理出来!(呜呜呜)

1.题目:写一个函数,可以逆序一个字符串的内容。(字符串里包含空格)

2.第一种解决方法:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#define N 10000
int main()
{
    char ch[N];
    int str;
    gets(ch);
    str = strlen(ch);
    for (int i = str-1; i >=0; i--)
    {
        printf("%c", ch[i]);
    }
    return 0;
}

使用字符串输入函数gets可以读取输入的空格,如果用scanf则遇到空格就停止。

3.第二种解决方法:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void Reverse(char* arr, int str)
{
	char *left = arr;
	char *right = arr+str-1;
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
	for (int i = 0; i < str; i++)
	{
		printf("%c", arr[i]);
	}
}
int main()
{
	char arr[] = "I am a student";
	int str = strlen(arr);
	Reverse(arr, str);
	return 0;
}

这里是规定了字符串,也可以运用gets输入任意的字符串。(改动的是主函数)

int main()
{
	char arr[365] = { 0 };
	while(gets(arr))
	{
		int str = strlen(arr);
		Reverse(arr, str);
	}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值