简单LinuxC程序关于逆序一个中英混合字符串

本文介绍如何使用Linux C语言编写一个程序,实现逆序输入的包含字母、数字、空格、标点及中文字符的混合字符串。程序需要对字符串进行两次逆序操作,同时考虑中文字符在内存的存储方式。这是一个编程技巧的分享,适合想要学习C语言和字符串处理的读者。
摘要由CSDN通过智能技术生成

题目:逆序一个中英混合字符串,此字符串包含字母字符、数字字符、空格字符、标点符号等英文字符以及中文字符,要求从键盘输入

源代码如下:

#include <stdio.h>
#define MAX 100       //定义字符串的最大长度

int main()
{
	char ch[MAX];
	int len = 0;
	

	fgets(ch,MAX,stdin);     //使用fgets从键盘获取一个字符串

	while (ch[len])
	{
		len++;
	}
	ch[--len] = '\0';         //得到字符串长度,并去掉回车符

	int min = 0;
	int max = len - 1;
	int temp;
	while (min < max)          //字符串逆序(按字节长度)
	{
		temp = ch[min];
		ch[min++] = ch[max];
		ch[max--] = temp;
	}

	int i = len;
	while (i != 0)          //从后开始扫描,遇到小于0的字符,则逆序自其往前三字符(UTF-8编码下中文字符占3个字节长度)
	{
		i--;
		if (ch[i] < 0)
		{
			temp = ch[i];
			ch[i] = ch[i - 2];
			ch[i - 2] = temp;
			i = i - 2;
		}
	}

	printf (&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值